如题所述
6、persistent类型限定符
按C的标准, PICC在编译时,所有的C变量在启动时都会调用clear_ram模块将其清为0,但在某些情况下,程序员希望在处理器复位后仍保持一些变量的值,比如在做抗干扰处理时,希望若是由于看门狗溢出造成的复位则保留变量的值,若还按照缺省定义,则C程序无法实现,此时则可使用persistent类型限定符使被其限定的变量在启动时不被清0,而保留原有的值,程序员可在程序中根据看门狗的情况自己判断是否清零,例如可用如下方法:
persistent unsigned char var1;//定义为变量var1为persistent类型
void initialization(void) //初始化函数
{
……………
if(TO) //发生看门狗中断时
{
…………
var1 = 0; //发生看门狗中断时不清变量var1
…………
}
…………
}
此处须注意的是自动变量不能使用persistent限定词。
//
http://news.machine365.com/arts/051124/24/72898_1.html来自:求助得到的回答
按C的标准, PICC在编译时,所有的C变量在启动时都会调用clear_ram模块将其清为0,但在某些情况下,程序员希望在处理器复位后仍保持一些变量的值,比如在做抗干扰处理时,希望若是由于看门狗溢出造成的复位则保留变量的值,若还按照缺省定义,则C程序无法实现,此时则可使用persistent类型限定符使被其限定的变量在启动时不被清0,而保留原有的值,程序员可在程序中根据看门狗的情况自己判断是否清零,例如可用如下方法:
persistent unsigned char var1;//定义为变量var1为persistent类型
void initialization(void) //初始化函数
{
……………
if(TO) //发生看门狗中断时
{
…………
var1 = 0; //发生看门狗中断时不清变量var1
…………
}
…………
}
此处须注意的是自动变量不能使用persistent限定词。
//
http://news.machine365.com/arts/051124/24/72898_1.html来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-03-31
己加上显示程序。