找回密码
 注册
关于网站域名变更的通知
查看: 250|回复: 4
打印 上一主题 下一主题

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

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-5-20 10:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
先清标志位好,还是后清好。
  y6 b- ?5 P# V3 i0 r+ [8 U
' H6 e! T% R! t2 s, [$ a        if(ReadVoltageFlag){! U. D8 c; i! H+ h3 ~" }
                //获取是充电电压3 y' o& C0 C+ g) g
                adc_mV = VoltCheck_GetVolt();! U& ^0 N& Z' S& z$ d. r! I# d
                ReadVoltageFlag = 0;
# K0 |$ r  o9 |9 s9 I; r* G        }/ a$ O/ J' v' K, V5 `4 d, {* d8 c" B+ ~

3 O1 J6 g0 x5 D+ s0 E! v
! T: |4 D2 F! B1 L; p3 F" D
( d0 @2 M, g# Q3 v  B+ r8 I+ T, P

该用户从未签到

2#
发表于 2022-5-20 10:44 | 只看该作者
如果没有要求,只要在此函数内清完就行,不要跑出此函数即可。如果你要考虑时效性,或CPU中断那些问题,还是先清标志为好。我个人的做法是,进来做完要做的事情,之后再清完标志位。

该用户从未签到

3#
发表于 2022-5-20 13:32 | 只看该作者
后清好,万一VoltCheck_GetVolt()里面读取标志位不就出错了吗?

该用户从未签到

4#
发表于 2022-5-20 13:46 | 只看该作者
先清后清都可以,在多任务系统需要做零界保护。
6 Y  p& Q+ b+ B! y8 k9 z4 d+ p但我一般是先清的 感觉进了函数就清掉 后面的就不用管它了思维习惯

该用户从未签到

5#
发表于 2022-5-20 14:44 | 只看该作者
程序如果不被打断,放在哪里清都一样。" k0 c' X0 j% f% B8 G$ M" X% u( m
程序如果被打断(如其它中断),且又用到标记位。就存在先清先清的问题了。
  A, q* T/ Q9 m- `+ W一定是有利有敝,需要程序员按照程序目的,做出取舍,不会有统一的答案!
' w/ I( Z& o$ T6 W% U7 N1 s这就是设计!需要全盘考虑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-4 11:10 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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