2012-07-12 98 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页面专用于数据存储,但是您必须一次缓冲并擦除整个页面,编辑链接器脚本等,这是一个完整的“另一个主题。