找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 175|回复: 5
收起左侧

单片机C语言程序里标志位的问题

[复制链接]
ID:709761 发表于 2022-5-19 15:12 | 显示全部楼层 |阅读模式
先清标志位好,还是后清好。


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


回复

使用道具 举报

ID:382454 发表于 2022-5-19 16:20 | 显示全部楼层
如果没有要求,只要在此函数内清完就行,不要跑出此函数即可。如果你要考虑时效性,或CPU中断那些问题,还是先清标志为好。我个人的做法是,进来做完要做的事情,之后再清完标志位。
回复

使用道具 举报

ID:883242 发表于 2022-5-19 16:21 | 显示全部楼层
后清好,万一VoltCheck_GetVolt()里面读取标志位不就出错了吗?
回复

使用道具 举报

ID:1026496 发表于 2022-5-19 20:45 | 显示全部楼层
先清后清都可以,但是在多任务系统需要做零界保护
回复

使用道具 举报

ID:1028021 发表于 2022-5-19 21:12 | 显示全部楼层
我一般是先清的 感觉进了函数就清掉 后面的就不用管它了思维习惯
回复

使用道具 举报

ID:123289 发表于 2022-5-20 10:27 | 显示全部楼层
程序如果不被打断,放在哪里清都一样。
程序如果被打断(如其它中断),且又用到标记位。就存在先清先清的问题了。
一定是有利有敝,需要程序员按照程序目的,做出取舍,不会有统一的答案!
这就是设计!需要全盘考虑。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表