请教一个关于编程的问题

2019-03-24 08:18发布

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


ISR1()
{
pwm=xxx; //修改pwm的值
}
ISR2()
{
CMPA=pwm; //pwm值赋CMPA寄存器
}
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
huixianfxt
2019-03-24 19:48
shower.xu 发表于 2017-11-17 10:25
一个读写动作,一个只读,一般不需要考虑互斥。

如果赋值操作不止一个指令周期呢?会不会在没有赋值完成的情况下被打断进入下面那个中断(当然是支持抢占优先级的,且下面那抢占优先级高),从而读出来错误的值呢?另外如果是一个指令周期的话,在执行赋值操作时被另一中断打断,那么CPU应该会执行完赋值操作然后再跳到另一个中断是吗?

一周热门 更多>

相关问题

    相关文章