51用16位变量,主程序和中断竞争时,编译器自动保护吗?

2020-01-14 18:54发布

本帖最后由 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吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。