• ベストアンサー

PIC EEPROM

CCSでEEPROMへの書き込み読み出しかたがわかりませんどなたか詳しく例題などを付けて教えて下さい。お願いします。またPICの種類によって文法が変わるのでしょうか?16F627Aでやりたいのですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • paspas
  • ベストアンサー率52% (47/90)
回答No.1

CCSには内蔵EEPROMのアクセス関数が準備されています。 読み込み data=read_eeprom(address); 書き込み write_eeprom(address, value); 16f627aは使ったことありませんが、16f648aではこれを使用しています。

関連するQ&A

  • PIC16F1827のEEPROMへの書込み

    PCM V5.0(PIC用CCS社コンパイラ)を Mplab8.92に組込み、PICkit3を使ってプログラムしています。 PIC16F1827のEEPROMへの書込みがうまくいきません。 RAは入力ポートで固定してあります。 RBは出力ポートでLEDが接続してあります。 テストプログラムは一回のみの動作です。 実機で動作させると RAは固定してあるので当然(4)でLEDが点灯しますが、 実機からCPUを抜き取りMplab上でReadすると EEPROMのアドレス0,1,2は異なるデータであり 動作させるたびに違うデータが書込まれています。 しかし (1) a0=35h (2) a1=a6h (3) a2=93h と定数にすると EEPROMのアドレス0,1,2は正しいデータが 書込まれています。 Q1. a0,a1,a2をポート入力とする場合は CPU自体に何か設定する必要があるのでしょうか? それともプログラムに工夫が必要なのでしょうか? いままで使っていたPIC16F88では このようなことはなかったと思うのですが・・・。 ----- テストプログラム ----- a0 = RA; //(1) write_eeprom (0,a0); a1 = RA; //(2) write_eeprom (1,a1); a2 = RA; //(3) write_eeprom (2,a2); if (a0 == a1 && a1==a2) //(4) RB =255; else RB =0;

  • PIC EEPROM

    PICでLEDのデータをEEPROMに書き込んで電源を切ってもデータを保存させ、再度電源オンの時は電源を切る前のデータで点滅させたいのですが、EEPROMって書き込みと読み出しってありますよね?  この場合は、LEDデータの書き込みのみで大丈夫でしょうか?

  • EEPROMをPICで使用する方法について

    PIC16F87XでEEPROM(24LC256)の利用を実験しているのですが、EEPROMへ連続してデータを続書き込みする場合、完了時に一定の時間ウェイトする必要があるようです。 データシートにWrite cycle time(byte or page) Tsp = 5msトありますが、この5ms秒のウェイトとは、次回の書き込みまでに、AD変換など他の処理が、5ms以上時間がかかるれば、問題ないということでしょうか? それとも、この間は、他の処理は行ってはいけないということでしょうか? どのカテゴリに質問していいのかわからないので、とりあえずこのカテゴリに質問させていただきます。 PICの処理に詳しい方いらっしゃいましたら、よろしくお願いします。 ちなみに、開発は、CCS-Cを使用しています。

  • PICマイコン16F84AのEEPROMについて

    EEPROMっていうのは電源を切ってもデータを保存できるんですよね? PICマイコン16F84AのEEPROMの使い方を分かりやすく、丁寧に教えて下さい。初心者なので・・・。 参考になるHPを教えてくださっても結構です。

  • EEPROMについて

    PIC16F877とEEPROM(24LC256)を使って、LCDモジュール(SG12864A)に、文字、絵を表示したいのですが、EEPROMの使い方が全くわかりません。 EEPROMにデータを入れるにはどうすればよいのでしょうか?分かる方、教えてください!

  • PIC EEPROM

    16F84AでLEDのデータをEEPROMに書き込みしたいのですが、正常に書き込み出来ればEEPROMのウィンドウにもデータが出てきますよね?

  • EEPROMについて

    先日、秋月通商でLCDモジュール(SG12864A)を購入し、EEPROMを使って漢字やひらがななど文字を表示し、それを動かすこともしたいのですが、やり方がわかりません。どなたか教えてください! ちなみに、PICは16F877、EEPROMは、マイクロチップ社の24LC256を使いたいと思ってます。

  • PICのEEPROMのデータが壊れてしまうことが…

    PICのEEPROMのデータが壊れてしまうことがあります PICのEEPROMにデータを書き込み、電源のON/OFFを繰り返しているとデータが妙な値に書き換わってしまうことがあります。 弊社の製品でこのような問題が発生していますが、製品の個体差がはっきりあり、不具合の出ない個体もあります。 製品Aではアドレスaが書き換わってしまうのに、製品Bではアドレスbのデータが電源ON/OFFで不正な値(決まった値)になってしまいます。 どのような原因が考えられるでしょうか。お詳しい方がおられましたら、アドバイスを頂けるとありがたいです。よろしくお願いします。

  • PIC のデータEEPROMに書き込みができません

    お世話になります。 PICのデータEEPROMへの初歩的な書き込みができずに悩んでいます。 ご経験のある方、私の誤りについてご教示いただければありがたく思います。 PICについてはいくつかの種類でプログラムを書いていますがEEPROMのデータ領域は初めてです。 各種のサイトでは簡単らしいのですが・・・ 当方の試験作業は次のとおりです。 対象チップ PIC16F819 パソコン Windows-XP 書き込み装置 PIC-kit3 書き込みソフト MP-LAB IDE V8.83 プログラム言語 HI-TECH C V9.83 電源 Pic-Kit3から5Vで供給 確認方法 ・MP-LAB- View- EEPROM- のFillmemoryにより、EEPROMにすべてFFH/00Hのいずれもが書き込めることを確認の上、256バイトすべてにFFH ・下記プログラムを走らせる (実行後1秒後に1回書き込み(十進15番地に十進20の例)、以降ランプの点滅。ランプの状態でひとまずの動作の正常は確認) ・MP-LAB- View- EEPROM- により確認・・(全部FFHのまま(泣)) そのほか、チップを新品に交換したり、書き込み時間をEEIFで検査するアルゴリズムにしてみたり、いろいろやってみましたが、壁にぶつかっています。 よろしくお願いいたします。 #include<htc.h> #ifndef _XTAL_FREQ #define _XTAL_FREQ 4000000 #endif __CONFIG(CP_OFF & BOREN_OFF & MCLRE_OFF & PWRTE_ON & LVP_OFF & WDTE_OFF & FOSC_INTOSCIO & DEBUG_OFF & CPD_OFF); void main() { OPTION_REG = 0b00000000; // output pullup OSCCON = 0b01100100; // internal OSC 4MHz TRISA = 0b11111110; // GP-A input RA7=output ADCON1 = 0b10000111; // No AD all digital TRISB = 0b00000000; // GP-B output INTCON = 0b00000000; // no interrupt RB1 = 0;    //Green Lamp off RB3 = 0; //Red Lamp off while (WR = 1) { __delay_ms(1000); } EEADR = 15; EEDATA = 20; EEPGD = 0; GIE = 0; WREN = 1; EECON2 = 0x55; EECON2 = 0xaa; WR = 1;      RB1 = 1; // Green Lamp __delay_ms(100);      RB1 = 0;     GIE = 1;  WREN = 0; EWWW:; // IDLE Lamp Red RB3 = 1; __delay_ms(400); RB3 = 0; __delay_ms(500); goto EWWW; }

  • MplabでEEPROMの読み出し

    Mplab 8.92とPICkit3です。 PIC16F1827でプログラム内でEEPROMに書き込みをしています。 その内容を確認するために Mplabで (1)Programmer---Read (2)View---EEPROM で確認しています。 一度Readすると0だったものが、もう一度Readすると3と赤く表示 されました。 何度読みだしてもEEPROMの内容が変化するはずはないのに なぜ変化するのでしょうか? それとも私のMplabの使い方が間違っているのでしょうか? ご教授お願いします。

専門家に質問してみよう