标题: 单片机C语言程序里标志位的问题 [打印本页]

作者: 李冬    时间: 2022-5-19 15:12
标题: 单片机C语言程序里标志位的问题
先清标志位好,还是后清好。


        if(ReadVoltageFlag){
                //获取是充电电压
                adc_mV = VoltCheck_GetVolt();
                ReadVoltageFlag = 0;
        }



作者: univers    时间: 2022-5-19 16:20
如果没有要求,只要在此函数内清完就行,不要跑出此函数即可。如果你要考虑时效性,或CPU中断那些问题,还是先清标志为好。我个人的做法是,进来做完要做的事情,之后再清完标志位。
作者: Hephaestus    时间: 2022-5-19 16:21
后清好,万一VoltCheck_GetVolt()里面读取标志位不就出错了吗?
作者: yaoyao2022    时间: 2022-5-19 20:45
先清后清都可以,但是在多任务系统需要做零界保护
作者: baoxiao    时间: 2022-5-19 21:12
我一般是先清的 感觉进了函数就清掉 后面的就不用管它了思维习惯
作者: yzwzfyz    时间: 2022-5-20 10:27
程序如果不被打断,放在哪里清都一样。
程序如果被打断(如其它中断),且又用到标记位。就存在先清先清的问题了。
一定是有利有敝,需要程序员按照程序目的,做出取舍,不会有统一的答案!
这就是设计!需要全盘考虑。





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1