使用MPLAB X IDE 6.00版本,XC8编译器,芯片使用 PIC18F452
定义一个数组复位后,单片机会运行一端代码,将这个数组 清0
现在需要 开机不运行这个清0代码,数组数值保持原样 该怎么做?
再问一个PIC18C452只能烧写一次吗?
使用MPLAB X IDE 6.00版本,XC8编译器,芯片使用 PIC18F452
定义一个数组复位后,单片机会运行一端代码,将这个数组 清0
现在需要 开机不运行这个清0代码,数组数值保持原样 该怎么做?
再问一个PIC18C452只能烧写一次吗?
MPLAB X IDE 中,可以使用 #pragma data 定义变量不被初始化。例如:
#pragma data _CONFIG1H, _IESO_OFF & _FCMEN_OFF & _OSC_HS
#pragma data _CONFIG2L, _PUT_OFF & _BODEN_OFF & _BODENV_2_0V
#pragma data _CONFIG2H, _WDT_OFF & _WDTPS_1x
#pragma data _CONFIG3H, _MCLRE_OFF & _LPT1OSC_OFF & _PBADEN_OFF
#pragma data _CONFIG4L, _DEBUG_OFF & _XINST_OFF & _LVP_OFF
#pragma data _CONFIG5L, _CP0_OFF & _CP1_OFF & _CP2_OFF & _CP3_OFF
#pragma data _CONFIG5H, _CPB_OFF & _CPD_OFF
#pragma data _CONFIG6L, _WRT0_OFF & _WRT1_OFF & _WRT2_OFF & _WRT3_OFF
#pragma data _CONFIG6H, _WRTC_OFF & _WRTB_OFF & _WRTD_OFF
#pragma data _CONFIG7L, _EBTR0_OFF & _EBTR1_OFF & _EBTR2_OFF & _EBTR3_OFF
#pragma data _CONFIG7H, _EBTRB_OFF
或者使用 __no_init 关键字来定义变量不被初始化,例如:
__no_init unsigned char array[10];
关于 PIC18F452 的烧写,这个芯片是可以重复烧写的。它支持编程器烧录和串行编程。但是需要注意的是,烧写次数有限制,请遵循芯片厂商提供的烧录次数限制。