1. ICD2暂时不能调试,改用ICD3;因硬件设置PGC3/PGC4 Pin42/Pin41,因此需添加配置位定义如下:
_FICD(ICS_PGD3 & JTAGEN_OFF); // Communication Channel: PGC1/EMUC1 and PGD1/EMUD1
// JTAG disabled
2. FOSC、FCY的相关内容:
配置为代码中定义如下:
_FOSCSEL(FNOSC_PRIPLL);
_FOSC(FCKSM_CSECMD & OSCIOFNC_ON & POSCMD_HS);
_FWDT(FWDTEN_OFF); // Watchdog Timer enabled/disabled by user software
_FICD(ICS_PGD3 & JTAGEN_OFF); // Communication Channel: PGC1/EMUC1 and PGD1/EMUD1
// JTAG disabled
最开始加入代码如下配置PLL:
_PLLPRE = 0; //N1=2
_PLLDIV = 30; //M=32
//_DOZEN = 1; //FCY=FOSC/2
_PLLPOST = 0; //N2=2
while(OSCCONbits.LOCK!=1) {}; // Wait for PLL to lock
_DISI = 1;
3. 测试延时函数:
注意包含头文件前定义FCY,如下:
#define FCY 40000000UL
#include
#include
__delya_ms(1000); //1000会导致溢出!建议1000ULL
软仿真时(DEBUG SIM):
Simulator Settings: Osc/Trace Processor Frequency: 80Mhz
它实际上是定义的FOSC!
4.测试IO口性能!测试代码如下:
while(1)
{
_LATA4=~_LATA4;
}
测试结果:
最多只能产生1.17MHz的方波,看来IO非快速IO口!
阅读(1791) | 评论(0) | 转发(0) |