Re: PIC16F18345 User ID修改

作者 Ryang 於 2018年07月12日 12:17:43
建議使用 EEPROM 來存 ID 會比較方便的。透過 XC8 來對 EEPROM 的支援,可以直接定義 EEPROM 的初始設定資料,這初始資料會存在編譯後的 HEX 檔裡,燒錄程式時會稍在 EEPROM 的位置。

存取或修改這些 EEPROM 資料也是很簡單的,XC8 有提供 EEPROM 的函數可直接讀取或修改 EEPROM 的內容。

使用 __EEPROM_DATA( ) 的巨集
擺放位址從 EEPROM 0x00 的位址開始

範例
:
#include     <xc8.h>
__EEPROM_DATA(0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07);
__EEPROM_DATA(0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F);

==========================================

使用 eeprom_write( ) & eeprom_read( ) 來存取 EEPROM 的資料

#include <xc.h>

int main ()
{    
    
volatile unsigned char value = 0x09;    
    
unsigned char address = 0xE5;    
            
// Writing value 0x9 to EEPROM address 0xE5
    
eeprom_write (address, value);
            
// Reading the value from address 0xE5
    
value = eeprom_read (address);
}


以上 EEPROM 的使用方法可以參考 XC8 的中文教育訓練課程裡的 Page 72 ~ Page 73 的說明。

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=22345&post_id=78374