2012-07-12 91 views
0

微芯片上的PIC16微控制器我有幾分的程序:PIC16:自修改代碼

off = 2; 
period = 10; 

while (1) { 
    if (counter == 1) { 
    switch something on; 
    }elseif (counter == off) { 
    switch something off; 
    }elseif (counter == period) { 
    counter = 1; 
    } 
    counter++; 
    pause; 
} 

在我的代碼(未顯示),我想實現修改的可能性通信模塊程序代碼:更改分配給「關」和「期間」的值。

注意:我不想進行變量賦值(在復位時丟失),但想對設備上存儲的程序進行永久更改。

有人可以點我在正確的方向?理想情況下,我想用C來實現它。最簡單的方法是什麼? 「off」和「period」應該是變量,指針還是常量,以便於實現?

非常感謝!

回答

3

這通常是你要在數據EEPROM中做的事情,如果微有它(大多數16F的)。通常,您將在啓動時從EEPROM中讀取數據,並使用讀取的值填充RAM變量,並使用代碼中的變量。 Microchip已爲數據EEPROM的讀寫順序預編碼。另外,如果器件沒有EEPROM,您可以將特定的FLASH頁面專用於數據存儲,但是您必須一次緩衝並擦除整個頁面,編輯鏈接器腳本等,這是一個完整的「另一個主題。