その後
静電容量型のタッチセンサーの検出に使用し、無事 終了することができました。「検出時間での誤差範囲を設定しそれ以上の誤差では、再測定する」としてから問題なく動作するようになりました。
このCPUには、コンデンサ容量を測る機能があり、その機能を使って容量変化を捉える装置を作る機会がありました。
1秒間に4回の容量計測を行い、予め設定した値を超えると反応するシステムを作り、問題なく動作するので、ソフトやハードに問題ないと考え納品いたしましたが、 時々 誤動作をすることが起こりました。
- 起動後10時間を過ぎると発生することが多い。
- 通常は、問題なく動作している。
- 周囲の状況によるものと考え、計測場所を変更しても発生する。
- 個体差によるものと考え、異なる部材での実験でも発生する。
想定できる状況でテストしましたがその全てで発生がありました。最後に CPUの読み込みで何かが発生していると想定しCPUの読み込みの問題に対応するソフトに変更したところ、150万回を超えても発生がなくなりました。
教訓:CPUでのI/O読込みが100%とは限らない。エラーすることがある。
ハードウエアとソフトウエアの微妙なタイミングによるものと推測するが確かめる手立てが思いつかないが 注意することは必要です。