0

マイクロチップ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 で実装したいと考えています。これを行う最も簡単な方法は何ですか? 簡単に実装するには、「オフ」と「期間」を変数、ポインター、または定数にする必要がありますか?

どうもありがとう!

4

1 に答える 1

3

これは通常、マイクロにある場合はデータ EEPROM で行うことです (ほとんどの 16F が行います)。通常、ブート時に EEPROM から読み取り、RAM 変数に読み取った値を入力し、コードから変数を使用します。Microchip 社は、データ EEPROM の読み取りおよび書き込みシーケンス用のビルド済みコードを用意しています。また、パーツに EEPROM がない場合、プログラム FLASH の特定のページをデータ ストレージ専用にすることもできますが、一度にページ全体をバッファリングして消去したり、リンカ スクリプトを編集したりする必要があります。これはまったく別のトピックです。 .

于 2012-07-12T18:47:24.193 に答える