嵌入式学习小组
直播中

李宇昂

7年用户 186经验值
私信 关注

请问在中断处理程序中操作寄存器时的注意事项有哪些?

在中断处理程序中操作寄存器时的注意事项
  

回帖(1)

冯虎虔

2020-11-24 13:58:09
在输入中断处理程序之前和之后,如果必须操作相同的寄存器,则在操作寄存器的顺序上会出现问题。
例如,在操作登记册时GPIOA_OUT:
不同的GPIOA_OUT位控制不同的引脚输出,例如。 GPIOA_OUT[0]控制PA0的输出,GPIOA_OUT[1]控制PA.1的输出。 如果主函数将0x1写入GPIOA_OUT以控制PA.0输出高电平,则输入中断。 在中断处理程序中,将0x2写入GPIOA_OUT,并控制PA.1输出高电平;此时,GPIOA_OUT=0x2。当退出中断处理程序并返回主函数时,将完成将0x1写入GPIOA_OUT的操作,使GPIOA_OUT=0x1,导致PA.1输出高电平在中断处理程序上被覆盖,从而导致寄存器的操作顺序出现问题。 *为避免中断处理程序和同时操作寄存器的程序出现问题,可以在中断处理程序中设置标志,并在操作寄存器之前先确定主函数中的标志。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分