EEPROMを内蔵したマイクロコントローラーを使用できます。8ビットPIC16F84Aには64バイトのEEPROMがあり、通常は10,000,000回、各バイトへの最低1,000,000回の書き込みに適しています(これはバイト耐久性と呼ばれます)。別の回答で選択されたPIC、PIC12F635には128バイトのEEPROMと100,000回の書き込みのバイト耐久性があります。PIC24F16KA102、16ビットプロセッサは、また、512 EEPROMのバイト100,000書込みのバイト耐久性を有しています。
OPは、LEDが点滅する頻度を示しません。この説明のために、1分間に4回と仮定します。
1年で点滅します
4 * 60 * 24 * 365 = 2 、102 、400 T Iのm個の電子 S 。
EEPROMは最後のオンイベントとオフイベントの両方をキャプチャする必要があるため、その数の2倍、つまり約420万回に書き込まれます。5年間で、これは2,100万回です。
明らかに、これは現在マイクロコントローラーに組み込まれているEEPROMの仕様を超えます。
しかし、これには簡単な解決策があります。同じバイトを繰り返し使用してオンまたはオフの状態を追跡する代わりに、バイトの配列を使用してチップ全体を埋めることができます。
配列の各要素に2バイトが必要です。したがって、PIC16F84Aのような64バイトEEPROMは、32個の要素を保持できます。EEPROMに書き込むたびに、ステータスバイトに0を書き込み(この要素にデータがあることを意味する)、データバイトに0を書き込む(LEDが最後にオフになった)か、0xFF(LEDが最後にオンになった)のいずれかを書き込みます。次回EEPROMにアクセスするときは、0xFFステータスバイトを持つものが見つかるまで要素をインデックスし、その要素を使用します。何も残っていない場合は、EEPROMを再初期化してやり直します(ローエンドPICの場合、これは各ステータスバイトに0xFFを書き込むことを意味します。PIC24の場合、EEPROM全体を消去するコマンドがあります)。LEDの最後のステータスを知る必要がある場合は、以前と同じように配列をインデックスしますが、1つの要素に戻ってデータバイトを読み取ります。
これは、PIC16F84Aの場合、基本的に1バイトへのアクセス数を16倍に分割します(各ステータスバイトが2回書き込まれるため、32ではなく16)。したがって、ほぼ4年間のデータに十分な合計1,600万の書き込みを処理できます。また、PIC12F635は、EEPROMが大きく、バイト耐久性が100Kと小さいため、9か月間で合計320万回の書き込みを処理できます。
512バイトのEEPROMとバルク消去機能を備えたPIC24F16KA102は、5年間以上で2560万回の書き込みを処理できます。
点滅速度が1 分間に4回ではなく、1 時間に4回だけの場合、これは年間70,080回の書き込みを意味します。1バイトあたり100,000回の書き込みに耐えるPIC12F635でさえ、45年間持続します。