51用16位变量,主程序和中断竞争时,编译器自动保护吗?
本帖最后由 makesoft 于 2018-3-15 10:52 编辑在KEIL中,当主程序和中断程序使用16位变量时,一般来说编程的时候都是需要特别保护的,比如ADC在中断里面计算结果,主程序使用结果都是用下面类似函数来处理,防止高低字节分别更新,在IAR里也有这样的问题吗,用过的说说?
//安全读取可能被中断改变的16位变量
S16 SafeReadS16(S16 whTemp) {
S16 whTemp1;
whTemp1=whTemp;
if(whTemp1!=whTemp)
whTemp1=whTemp;
return(whTemp1);
}
另外IAR的BOOL好像使用的是CHAR,可以定位成BIT吗? 这类变量就属于临界变量,编程时要严格予以保护。
页:
[1]