変数がすでに存在するかどうかを確認するために作成したいプログラムがあります。表示されている場合は表示され、表示されていない場合は、PROGMEMコマンドを使用して作成され、Arduinoに保存されます。誰かがPROGMEMと私が話しているプログラムを作る方法についてもっと説明できますか?
3 に答える
一般的に、関数で変数を作成している場合、それらは関数が閉じられたときにのみそこに存在し、すべての変数が削除されます。それらを存続させたい場合は、グローバル変数を作成するか、その前に静的変数を使用してみてください。ここみたいに
static int myvariable;
そして、ここにあなたの質問に対する答えがあります
if (myvariable!=NULL)
{
printfucntion(myvariable);
}
EEPROMのソリューション
EEPROM読み取りEEPROMの各バイトの値を読み取り、コンピューターに出力します。
#include <EEPROM.h>
// start reading from the first byte (address 0) of the EEPROM
int address = 0;
byte value;
void setup()
{
Serial.begin(9600);
}
void loop()
{
// read a byte from the current address of the EEPROM
value = EEPROM.read(address);
Serial.print(address);
Serial.print("\t");
Serial.print(value, DEC);
Serial.println();
//move to next address of the EEPROM
address = address + 1;
// there are only 512 bytes of EEPROM, from 0 to 511, so if you are
// on address 512, wrap around to address 0
// if you have arduinoMega probably there is more eeprom space
if (address == 512)
address = 0;
delay(500);
}
お役に立てば幸いです。
これはかなり古い質問であり、あまり人気がありません。しかし、有効な質問です。isset()
PHPでは、変数の存在をテストするために常に使用しています。したがって、おそらくOPは、戦争をしないで恋をするphpの世界から組み込み/ Cプログラミングに移行することになります。そこでは、非常に文字通りの正式なCの国に慣れていません。
ここで指摘されているように、C言語には条件付き定義が#ifdefあり#ifndef、何かが定義されているかどうかをテストするという正確な目的でよく使用されます。この使用法のニュアンスをよりよく理解するには、おそらくProgrammers.SEにアクセスして、条件付き定義に関する専門的な哲学について問い合わせる必要があります。
自分?私はEEPROMを介してArduinoの永続的な可変ストレージを研究しています。ここに2つの異なる優れた記事があります。そして、について#ifdef?私はただのソフトウェアエンジニアであり、ソフトウェアアーキテクトのためにそれを保存しています。;-)私はそれらを意図的に実装したことはありません。それらをたくさん見てください。
そして、OPの質問に対する文字通りの答えは、変数をクエリして使用してみることです。ArduinoのIDEコンパイラは、定義されていない場合は悲鳴を上げます。
その単純な、変数を宣言する必要があるだけです。要素の配列と比較するだけで、比較したいです。配列要素とEnter要素が存在する場合は、Serial.print()ステートメントを使用して表示します。それ以外の場合は、それを累積するバッファーの配列に格納します。表示します。
あなたが単一のリンクリストをしているように