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;