pic c言語とも初心者です unsignedint int の変数の値をEEPROMに書き込み それを読み出して 元の変数に戻したいのですが
pic c言語とも初心者です unsignedint int の変数の値をEEPROMに書き込み それを読み出して 元の変数に戻したいのですが unsigned int CNT = 258; //hex=0102 //書き込み eeprom_write(0,(unsigned char) CNT); CNT = CNT >>8; eeprom_write(1,(unsigned char) CNT); //読み出し CNT = eeprom_read(1); CNT = CNT <<8; CNT = CNT + eeprom_read(0); これで元に戻りますでしょうか? もっと標準的な良い方法がありましたら教えて欲しいです
C言語関連・74閲覧
ベストアンサー
関数にした方が使い勝手が良いです 一例 void eeprom_write2( unsigned char adr , unsigned int dat ){ eeprom_write( adr , dat & 0x00FF ); eeprom_write( adr+1 , dat >> 8 ); } unsigned int eeprom_read2( unsigned char adr ){ return ( eeprom_read( adr+1 ) << 8 ) | eeprom_read( adr ); } 実行テスト結果↓ PIC12F1822 EEPROM TEST !! eeprom adr = 00 write = 0123 read = 0123 eeprom adr = 02 write = 4567 read = 4567 eeprom adr = 04 write = 89AB read = 89AB eeprom adr = 06 write = CDEF read = CDEF eeprom dump adr 00 : 23 01 67 45 AB 89 EF CD なお MPLAB Code Configurator(MCC) だと void DATAEE_WriteByte(uint8_t bAdd, uint8_t bData); uint8_t DATAEE_ReadByte(uint8_t bAdd); が使えます。
質問者からのお礼コメント
回答ありがとうございます なるほど大変勉強になりました 関数にしておけば便利ですし間違いも少なくなりますよね 実行結果までお書き頂き、しっかり理解できました 論理演算 &|も 勉強して理解できました ゆっくりですが基礎から確実に進んでいこうと思っています ありがとうございました
お礼日時:5/22 5:11