本帖最后由 vincentwang 于 2014-11-30 17:08 编辑
第一次接触PIC的单片机,碰到一些问题,在网上也没找到解决的方法,所以来这几请教一下各位高手,希望各位高手不吝赐教!!!
因为现有悬赏分数比较少,有多少给多少了,希望高手们不要嫌少!
芯片型号:PIC18F87K90
编译环境:MPLAB X IDE V2.20+XC8
调试工具:ICD3
时钟:外部晶振8M
碰到问题如下:
问题1.点调试的时候会弹出如下警告界面:
说因为那些配置字被设置为ENABLE所以无法继续请求的操作!
但实际我的配置字是有把那些都OFF掉,不知道为什么还会有这个警告?请高手指点一下
我实际的配置字如下:
// CONFIG1L
#pragma config RETEN = ON // VREG Sleep Enable bit (Enabled)
#pragma config INTOSCSEL = HIGH // LF-INTOSC Low-power Enable bit (LF-INTOSC in High-power mode during Sleep)
#pragma config SOSCSEL = DIG // SOSC Power Selection and mode Configuration bits (Digital (SCLKI) mode)
#pragma config XINST = OFF // Extended Instruction Set (Disabled)
// CONFIG1H
#pragma config FOSC = HS1 // Oscillator (HS oscillator (Medium power, 4 MHz - 16 MHz))
#pragma config PLLCFG = ON // PLL x4 Enable bit (Enabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor (Disabled)
#pragma config IESO = OFF // Internal External Oscillator Switch Over Mode (Disabled)
// CONFIG2L
#pragma config PWRTEN = OFF // Power Up Timer (Disabled)
#pragma config BOREN = SBORDIS // Brown Out Detect (Enabled in hardware, SBOREN disabled)
#pragma config BORV = 3 // Brown-out Reset Voltage bits (1.8V)
#pragma config BORPWR = ZPBORMV // BORMV Power level (ZPBORMV instead of BORMV is selected)
// CONFIG2H
#pragma config WDTEN = OFF // Watchdog Timer (WDT disabled in hardware; SWDTEN bit disabled)
#pragma config WDTPS = 1048576 // Watchdog Postscaler (1:1048576)
// CONFIG3L
#pragma config RTCOSC = SOSCREF // RTCC Clock Select (RTCC uses SOSC)
// CONFIG3H
#pragma config CCP2MX = PORTC // CCP2 Mux (RC1)
#pragma config ECCPMX = PORTE // ECCP Mux (Enhanced CCP1/3 [P1B/P1C/P3B/P3C] muxed with RE6/RE5/RE4/RE3)
#pragma config MSSPMSK = MSK7 // MSSP address masking (7 Bit address masking mode)
#pragma config MCLRE = ON // Master Clear Enable (MCLR Enabled, RG5 Disabled)
// CONFIG4L
#pragma config STVREN = ON // Stack Overflow Reset (Enabled)
#pragma config BBSIZ = BB2K // Boot Block Size (2K word Boot Block size)
// CONFIG5L
#pragma config CP0 = OFF // Code Protect 00800-03FFF (Disabled)
#pragma config CP1 = OFF // Code Protect 04000-07FFF (Disabled)
#pragma config CP2 = OFF // Code Protect 08000-0BFFF (Disabled)
#pragma config CP3 = OFF // Code Protect 0C000-0FFFF (Disabled)
#pragma config CP4 = OFF // Code Protect 10000-13FFF (Disabled)
#pragma config CP5 = OFF // Code Protect 14000-17FFF (Disabled)
#pragma config CP6 = OFF // Code Protect 18000-1BFFF (Disabled)
#pragma config CP7 = OFF // Code Protect 1C000-1FFFF (Disabled)
// CONFIG5H
#pragma config CPB = OFF // Code Protect Boot (Disabled)
#pragma config CPD = OFF // Data EE Read Protect (Disabled)
// CONFIG6L
#pragma config WRT0 = OFF // Table Write Protect 00800-03FFF (Disabled)
#pragma config WRT1 = OFF // Table Write Protect 04000-07FFF (Disabled)
#pragma config WRT2 = OFF // Table Write Protect 08000-0BFFF (Disabled)
#pragma config WRT3 = OFF // Table Write Protect 0C000-0FFFF (Disabled)
#pragma config WRT4 = OFF // Table Write Protect 10000-13FFF (Disabled)
#pragma config WRT5 = OFF // Table Write Protect 14000-17FFF (Disabled)
#pragma config WRT6 = OFF // Table Write Protect 18000-1BFFF (Disabled)
#pragma config WRT7 = OFF // Table Write Protect 1C000-1FFFF (Disabled)
// CONFIG6H
#pragma config WRTC = OFF // Config. Write Protect (Disabled)
#pragma config WRTB = OFF // Table Write Protect Boot (Disabled)
#pragma config WRTD = OFF // Data EE Write Protect (Disabled)
// CONFIG7L
#pragma config EBRT0 = OFF // Table Read Protect 00800-03FFF (Disabled)
#pragma config EBRT1 = OFF // Table Read Protect 04000-07FFF (Disabled)
#pragma config EBRT2 = OFF // Table Read Protect 08000-0BFFF (Disabled)
#pragma config EBRT3 = OFF // Table Read Protect 0C000-0FFFF (Disabled)
#pragma config EBRT4 = OFF // Table Read Protect 10000-13FFF (Disabled)
#pragma config EBRT5 = OFF // Table Read Protect 14000-17FFF (Disabled)
#pragma config EBRT6 = OFF // Table Read Protect 18000-1BFFF (Disabled)
#pragma config EBRT7 = OFF // Table Read Protect 1C000-1FFFF (Disabled)
// CONFIG7H
#pragma config EBRTB = OFF // Table Read Protect Boot (Disabled)
问题二:ICD3是否只有一个硬件断点???这个实在太不方面,用惯了ST的芯片,调试很爽,只有一个断点还真不方便。
问题三:数码管显示数组为什么在MPLAB里定义成const unsigned char SegCode[17]或者static const unsigned char SegCode[17]都不能显示,定义成unsigned char SegCode[17]就可以正常显示,不知道xc8对const是怎么处理的?如果要用const,怎么用?
unsigned char SegCode[17]=
{
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F, // 9
0x76, // H
0x40, // -
0x71, // F
0x77, // A
0x38, // L
0x73, // P
0x37,//n
};
|