2019-03-24 11:06发布
sint27 发表于 2014-8-7 14:19 我说的可以赋值是要在主函数里面赋值,你这个赋值看起来是在函数体外赋值的,你再改下试试,我亲测是没有 ...
zzbaizhi 发表于 2014-8-7 16:23 大侠,我想再问一下。如果把A=0放进main中,程序复位后还会执行A=0这一句吗?如果会,使用__no_init的目 ...
zzbaizhi 发表于 2014-8-7 17:35 设置前两个红点是为了想看下程序复位时的现象,结果程序根本没停下来,一直运行,想问问,问题出在哪
最多设置5个标签!
大侠,我想再问一下。如果把A=0放进main中,程序复位后还会执行A=0这一句吗?如果会,使用__no_init的目的就是保证A不被初始化,使A保持跑飞时的值,可如果执行A=0这一句,那不又重新赋值了吗?如果不会,就是说程序会自动跳过这些经__no_init声明的这些变量的赋值语句吗?
例如AVR的单片机有复位寄存器,可以记录复位原因,这时候我们只需要写类似的代码,就能避免A被赋值了
void main(){
if(MCUCSR_Bit0==1){ // MCUCSR_Bit0是上电复位标志位
A=0; // 如果是上电复位,则变量赋初值
MCUCSR_Bit0=0; // 清空上电复位寄存器
}
没用过该芯片,所以不了解情况
一周热门 更多>