この投稿では、不具合で悩んだ例として「稀頻度で2連続タイマ割込み発生で悩んだこと」を紹介します。
昔、初めて利用した8ビットマイコンでエンジン制御ソフトウェアを開発していた際、稀に2回連続でタイマ割り込みが発生する現象に直面し、その原因調査に非常に苦労しました。
当時の私の経験では、タイマ割り込みのステータスフラグはエッジ検知で動作するものだと考えていました。しかし、このマイコンのタイマ割り込みステータスフラグはレベル検知で動作していたのです。ハードウェアマニュアルにはこの違いについて詳細な記載がなかったため、その原因に気づくまでに1週間以上かかりました。
最近のマイコンはエッジ検知が主流だと思いますが、皆様も思い込みには十分ご注意ください。