MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Arduinoの基礎 - EEPROMのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Arduinoの基礎 - EEPROM
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Arduino上のマイコンにはEEPROM(Electrically Erasable Programmable Read-Only Memory)がある。<br> EEPROMがあれば、ハードディスクのように電源がOFFの場合でもメモリ上の値を保持することができる。<br> <br> Arduino IDE上で利用可能なEEPROMライブラリもあるので、読み込みや書き込みは非常に簡単である。<br> <br> EEPROMのサイズはマイコンの種類によって違うので、利用時には注意する。<br> ATmega88と168では512[Byte]、ATmega328では1[KB]、 ATmega1280とATmega2560では4[KB]である。<br> また、1[Byte]を書き込むのに掛かる時間は3.3[mS]であり、更にデータを削除して書き込むというサイクルの寿命は10万回とされている。<br> <br><br> == EEPROM の read/write == EEPROMライブラリでは、書き込み時はwriteメソッド、読み込み時はreadメソッドがあり、1バイト毎に読み書きを行う。<br> 次のサンプルコードでは、MYSTRUCT構造体を定義して、それをEEPROMに書き込み、 s2に読み込む。<br> また、読み込んだ結果はシリアルモニタで確認することができる。<br> <br> <syntaxhighlight lang="c++"> #include <EEPROM.h> typedef struct _MYSTRUCT { int i; char c; } MYSTRUCT, *PMYSTRUCT; void setup() { Serial.begin(9600); MYSTRUCT s = {.i = 1234, .c = 'z'}; byte *p = (byte*)&s; for(int i = 0; i < sizeof(MYSTRUCT); i++) { EEPROM.write(i, *p); p++; } MYSTRUCT s2; byte *p2 = (byte*) &s2; for(int i = 0; i < sizeof(MYSTRUCT); i++) { byte b = EEPROM.read(j); *p2 = b; p2++; } Serial.println( s2.i ); Serial.println( s2.c ); } void loop() { } </source> <br><br> == EEPROMのgetメソッドとputメソッド == 次のサンプルコードでは、getメソッドとputメソッドを利用して、ユーザ定義のMYSTRUCT構造体をEEPROMに読み書きしている。<br> 特定のデータ構造を非構造的な保存領域に記憶する際は、<br> データ構造の先頭にシグネチャ(例 : 3文字等)を置いたり、データ構造のバージョン番号も同時に書き込むことによって、<br> 複数のプログラムバージョンに対応することができる。<br> <br> <syntaxhighlight lang="c++"> #include <EEPROM.h> typedef struct _MYSTRUCT { int i; char c; } MYSTRUCT, *PMYSTRUCT; void setup() { MYSTRUCT s3 = {.i = 9876, .c = 'a'}; EEPROM.put(0, s3); MYSTRUCT s4; EEPROM.get(0, s4); Serial.println(s4.i); Serial.println(s4.c); } void loop() { } </source> <br><br> __FORCETOC__ [[カテゴリ:Arduino]]
Arduinoの基礎 - EEPROM
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse