在微芯片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;
}
在我的代码的通信模块(未显示)中,我想实现修改程序代码的可能性:更改分配给“off”和“period”的值。
注意:我不想进行变量赋值(在复位时丢失)但想要对存储在设备上的程序进行永久性更改。
有人能指出我正确的方向吗?理想情况下,我想在C中实现这一点。最简单的方法是什么? “off”和“period”应该是变量,指针还是常量,以便于实现?
非常感谢!
答案 0 :(得分:3)
这通常是你在数据EEPROM中所做的事情,如果micro有它(大多数是16F的)。通常,您将在启动时从EEPROM读取并使用读取的值填充RAM变量,并使用代码中的变量。 Microchip提供了用于数据EEPROM读写序列的预编程代码。此外,如果器件没有EEPROM,您可以将特定的程序FLASH页面专用于数据存储,但是您必须一次缓冲和擦除整个页面,编辑链接器脚本等,这是一个完整的主题