08/07/24 15:00:41 KSyZ4cHL
PIC CでPIC16系用の割り込みルーチン書いてるんだが、変数、volatileつけようが
atomicじゃないんだな。これ、ひどいな。
実験はしていないが、割り込みルーチンでvolatile int型の変数を0x7fffからインクリメントしたら、
割り込みルーチンの外でその変数を読み出すと0x7fff→0x7f00→0x8000ってなるんだろうな。
atomicにアクセスしたいなら一時的に割り込み禁止にするべきなのか?
di()にしておいて、ei()に戻したときに、この割り込み禁止時間内に来たUSARTのデータなんかは、
ei()にした瞬間割り込みがかかって、(1バイトだけなら)取りこぼさないと理解していいのか?