请教一个关于编程的问题

2019-03-24 08:18发布

如果我需要在一个中断服务子程序里面修改一个变量值,在另一个中断服务子程序里面调用它,需要注意什么?直接调用?像下面这段示例就可以了吗?
int pwm; //定义变量
main{
....
}


ISR1()
{
pwm=xxx; //修改pwm的值
}
ISR2()
{
CMPA=pwm; //pwm值赋CMPA寄存器
}
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
ienglgge
2019-03-25 01:09
huixianfxt 发表于 2017-11-17 10:39
如果赋值操作不止一个指令周期呢?会不会在没有赋值完成的情况下被打断进入下面那个中断(当然是支持抢占 ...

没有绝对的安全,你要做的,是把不稳定性尽量降低。如果存在抢占优先级。你就要尽量把低优先级的中断里的代码尽量简化,执行最关键的部分,减少其执行时间,这样,被抢的概率就降低。

一周热门 更多>

相关问题

    相关文章