naming > xxxEI | yyyDI > Enable Interrupt | Disable Interrupt
- 組込みの実装
- 変数名にEIやDIが付いている
- 例: xxxEI、yyyDI
EIやDIは何を意味するのか。
推測
Enable InterruptとDisable Interrupt
asm volatile(“di”); // Disable all interrupts
asm volatile(“ie”); // Enable all interrupts
補足: ieはeiの誤記だろう。
備考
On the pic32 you have global interrupt enable/disable and individual interrupt enable/disable capability (it is far more granular than on the pic18 parts).
関数としては以下があると、特定の割込みセットををEnableにしたり、特定の割込みセットをDisableにする時にコードは少なくできそう。
- 全てをEIにする関数
- 全てをDIにする関数
- 個別でEIにする関数
- 個別でDIにする関数
変数名に関しては、xxxEIとyyyDIの両者を定義するよりも、「xxxEIとyyyEIを定義してdisableの時はFALSEにする」という実装案もあるだろう。
どちらがソースメンテ時に有用だろうか。
MSP430
MSP430ではP1IEやP2IEのようにEnableの設定レジスタがあり、Disableにするには0にする。
https://courses.cs.washington.edu/courses/cse466/11au/calendar/04-Interrupts-posted.pdf
のp19あたり
P1IE & P2IE (Port 1 & 2 Interrupt Enable reg)
Bit 0: interrupt disabled
Bit 1: interrupt enabled
Author And Source
この問題について(naming > xxxEI | yyyDI > Enable Interrupt | Disable Interrupt), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/dd7de785f8dcbc1b72b2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .