よくある質問
- M051 ベースシリーズ(95)
- M0518シリーズ(97)
- M0519シリーズ(43)
- M0564 シリーズ(1)
- ミニ 51 ベースシリーズ(90)
- ナノ 100/102 ベースシリーズ(101)
- Nano103 ベースシリーズ(10)
- ナノ 110/112 LCD シリーズ(100)
- ナノ 120 USB シリーズ(111)
- ナノ 130 アドバンストシリーズ(110)
- NUC029 シリーズ(94)
- NUC100/200 アドバンストシリーズ(102)
- NUC120/122/123/220 USB シリーズ(116)
- NUC121/125シリーズ(1)
- NUC126 USB シリーズ(2)
- NUC130/230 CAN シリーズ(103)
- NUC131/NUC1311 CAN シリーズ(98)
- NUC140/240 コネクティビティシリーズ(114)
- M451 ベースシリーズ(118)
- M451M シリーズ(117)
- M452 USB シリーズ(130)
- M4521 USB シリーズ(1)
- M453 CAN シリーズ(128)
- M463 CAN FD/USB HS シリーズ(1)
- M467 Ethernet/Crypto シリーズ(1)
- M471 シリーズ(1)
- M479 Motor Control Series(1)
- M481 Base シリーズ(4)
- M482 USB FS OTG シリーズ(4)
- M483 CAN シリーズ(4)
- M484 USB HS OTG シリーズ(4)
- M485 Crypto シリーズ(4)
- M487 Ethernet シリーズ(4)
- M4TK タッチキーシリーズ(25)
- NUC442/472 シリーズ(130)
- NUC472 Series(1)
- NUC505 シリーズ(138)
製品
機能
+
常见问答
在中断程序操作寄存器的时候,需要注意什么问题? 日期:2016-12-22
如果在进入中断程序前后,都要操作同一个寄存器的话,此时会有操作的先后问题。
以操作寄存器GPIOA_OUT为例:
GPIOA_OUT的不同bit控制不同的管脚输出,如GPIOA_OUT[0]控制PA.0的输出、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输出高电平的动作被覆盖,产生操作寄存器的先后问题。
为了避免中断程序和主程序同时操作寄存器的问题,可以在中断程序中设置一个标志,在主程序中判断这个标志再操作寄存器。
产品: | 微控制器 ,8 位 8051 微控制器 ,Arm Cortex-M0 微控制器 ,Arm Cortex-M4 微控制器 |
---|---|
应用: | |
功能: | Peripherals,ARM,Interrupt,I/O,GPIO |