32
88
184
初级会员
uint8_t fla,cnt; task() { if(fla==1) { 加锁() fla=0 cnt=0 解锁() do(); } } isr() { if(fla==0) { 加锁() cnt++ 解锁() if(cnt>60) { 加锁() cnt=0 fla=1 解锁() } } }
使用道具 举报
1万
7万
11万
管理员
eric2013 发表于 2024-7-4 11:27 任务里面开关中断,中断里面什么操作都不用做。
33
188
287
高级会员
0
25
新手上路
Zhyolo 发表于 2024-7-5 08:43 都上操作系统了还在用全局变量做标志位,个人建议不要这样玩
Y1ng 发表于 2024-7-4 11:44 那就是 任务里 不用加解锁操作,就在要修改这个变量的时候开关中断即可?那如果有中断+2个任务里都有对同 ...
eric2013 发表于 2024-7-8 09:51 开关中断和加解锁效果是一样的,只是这里没法用加锁了。
21
481
544
金牌会员
1
4
7
本版积分规则 发表回复 回帖后跳转到最后一页
|小黑屋|Archiver|手机版|硬汉嵌入式论坛
GMT+8, 2025-4-26 04:37 , Processed in 0.305959 second(s), 25 queries .
Powered by Discuz! X3.4 Licensed
Copyright © 2001-2023, Tencent Cloud.