タグ付けされた質問 「variables」

4
const int、enum、または#defineがはるかに理にかなっているときにピンにint変数を使用する理由
コードの実行中にピンが変更される可能性が低いのに、なぜ人々が変数を使用してピン番号を指定するのですか? 多くのint場合、ピン定義に使用されていることがわかりますが、 int led = 13; 使用するとき const int const int led = 13; またはenum、または#define #define LED 13 はるかに理にかなっています。 Arduinoサイトのチュートリアル(たとえば、ほとんどの人が実行する最初のチュートリアルBlink)にもあります。 私はそれconst intが好まれるどこかを読んだ#define。なぜ最初から人々が悪い習慣を身につけることを許すのではなく、これが最初から奨励されていないのですか?しばらく前に気づきましたが、最近私をいらいらさせ始めました。 メモリ/賢明なコンピューティングです/処理const int、enumまたはそのことについては#define、より良い平野よりint、すなわちに格納し、少ないメモリを占有する異なるメモリ(フラッシュ、EEPROM、SRAM)、実行速度が速く、迅速にコンパイルするには? これはの複製のように見えるかもしれませんが、定数に#defineまたはconst intを使用する方が良いでしょうか?しかし、私は人々が変数を使用する理由と、どのタイプの定数が優れているかではなく、変数を使用しない場合のパフォーマンスをどのように改善するかという問題に取り組んでいます。

4
可変サイズの配列を宣言するには(グローバル)
同じ長さの3つの配列を作りたいです。ドキュメントによると、配列はint myArray[10];、既知の長さ(別の整数)を10で置き換えるか、配列で埋めることができる場所として定義する必要があります{2, 3, 5, 6, 7}。 ただし、int arrSize = 10;そのサイズint myArray[arrSize];に基づいて値を宣言してから配列を宣言しようとすると、次のようになりますerror: array bound is not an integer constant。 配列サイズを可変的に決定する方法はありますか、それとも単にハードコードする必要がありますか?(ハードコーディングは悪いものであり、どうしても避けるべきものだと教えられました。)

2
pow()の非浮動の代替はありますか?
私はArduinoのWebサイトでLANGUAGE REFERENCEを調べましたが、Float以外の相当するものを見つけることができません。pow() 何か大きなものが欠けているはずですが、私にとっては困っています。pow()数学の見出しの下のFUNCTIONS列で(予想どおり)見つかりましたが、[base]と[exponent]の両方のパラメーターが両方とも(float)であると表示されています。そして、Mathという見出しの下には、6つのエントリしかありません。それらは整数バージョンではないようです。私がやりたいのは、0から10までの指数を使用して2の累乗を生成することだけです。2^ 0 = 1、2 ^ 1 = 2、2 ^ 2 = 4、2 ^ 3 = 8、2 ^ 4 = 16、 2 ^ 5 = 32、2 ^ 6 = 64、2 ^ 7 = 128、2 ^ 8 = 256、2 ^ 9 = 512、2 ^ 10は1024 フロートを使用するのはこれができる唯一の方法ですか?私は現実と対立しているように感じ始め、実際に自分の薬を数えましたが、私はあるべき場所にいます。あなたの時間を無駄にしてしまったこの悪質な見落としを事前にお詫び申し上げますが、私は9ページすべてのタグを調べ、考えられる限りの検索を行ってきました。私はそれほど多くの時間を費やしていないことを認めますが、これはたった5分のことになると確信していました。


2
タイマーを使用してISRの変数を更新する方法
Timer3の周波数をカウンターで確認しようとしています。揮発性として宣言されたカウンターの値はISRでインクリメントされ、毎秒合計がメインループに表示され、値はゼロにリセットされます。 タイマーは正しく設定されています。(3Hzタイマーを選択すると、LEDが点滅します) 問題 カウンターはインクリメントされません。出力は次のとおりです。 Setup Completed tick: 1 tick: 0 tick: 0 tick: 0 コード volatile int cont = 0; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); // Initialize Timer cli(); // disable global interrupts TCCR3A = 0; // set entire TCCR3A register to 0 TCCR3B = 0; // same for …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.