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

2
Arduino IDEの別のタブでクラスを宣言できないのはなぜですか?
私はコードをArduino IDEの2番目のタブに移動して、整理しやすくしました。最初は、関数を移動しようとしただけで、うまくいくように見えました。setup()メインタブの関数から関数を呼び出すことができ、コンパイルまたはアップロードに問題はありませんでした。 しかし、クラス全体を2番目のタブに入れようとしましたが、突然機能しなくなりました。例えば: タブ1: TestClass obj; void setup() { obj.init(); } void loop() { //... } タブ2: class TestClass { public: void init() { //... } }; これをコンパイルしようとすると、次のエラーが表示されました。 tab1:1: error: 'TestClass' does not name a type tab1.ino: In function 'void setup()': tab1:5: error: 'obj' was not declared in this scope …

5
Linuxコマンドラインを使用してコンパイル、アップロード、監視する方法は?
Arduino Uno(アップロードなど)とArduino IDE(Fedoraパッケージを使用)とのインターフェースは、Fedora 21で正常に機能します。 しかし、私はむしろvim + make + vim-quickfix-modeなどを使用したいです。 どうやってやるの? できれば、Fedoraリポジトリから入手できるツールを使用してください。 IDEはアップロードなどのために外部コマンドラインユーティリティを呼び出すと仮定しています IDEのシリアルモニターに相当するのは、おそらくターミナルエミュレーター(例screen)を/dev/ttyACM0に接続することでしょうか? おそらく、メイクファイルを見ることができる良いプロジェクト例がありますか?
18 compile 

2
VSコードでスケッチを検証するときの警告
私はVisual Studio Codeを使用して、Arduino Studioでインストールされたファイルを使用し、インストールを機能させる必要があるarduino用に開発しています。これは非常にうまく機能します。 面倒なのは、スケッチを検証するときにArduino IDEよりも時間がかかることです。次の警告が原因と思われます。 [警告]出力パスが指定されていません。以前にコンパイルされたファイルを再利用できません。検証が遅い可能性があります。READMEを参照してください。 警告を取り除きたいと私はarduinoインストールフォルダー内のすべてのREADMEファイルを検索し、googleも検索しましたが、それが何を意味し、どのようにそれを修正するのかわかりません。READMEファイルにそのことが記載されていないか、見落としました。 これをどこで修正するかに関するドキュメントはありますか?
17 compile  ide 

1
Arduino IDE #ifdef
Arduino IDEを使用して、スケッチをArduino、ATTiny、またはATmega328にアップロードします。ご存知のように、各デバイスは異なるピン配列を持つことができます。ifdef接続しているボードに応じて、Arduinoコンパイラはをサポートしますか? 例えば #ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif

1
メモリサイズのプリプロセッサ定数はありますか
使用可能なフラッシュ/プログラム領域に応じて、コンパイルで一部のコードを除外したいと思います。私がサポートするライブラリのデモコードで使用されます。私の現在の解決策は、プロセッサタイプの#ifdefを使用することです。しかし、私はもっと一般的であり、すべてのさまざまなチップを指定する必要はありません。むしろ、利用可能なサイズを示すプリプロセッサ定数があればいいでしょう。 私がgccやavr-gccで十分に流notでない場合は、ヒープの開始と終了を定義する定数に似た定数を見つけることを期待するかもしれません。 ケースの例。UNOとLeoの両方に32Kのフラッシュがあるということです。しかし、LeoのコアライブラリはUSBサポートに4Kを使用しているため、利用可能なのは28Kだけです。私のライブラリのデモはUNOでほぼ最大限に活用されており、利用可能なプログラムスペースに基づいて自動的にトリムします。

4
スケッチがなぜそれほど多くのスペースとメモリを占有するのですか?
このスケッチをYún向けにコンパイルすると: int led = 7; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); } 私は得る: Sketchは5,098バイト(17%)のプログラムストレージスペースを使用します。 最大は28,672バイトです。グローバル変数は、153バイト(5%)の動的メモリを使用し、ローカル変数用に2,407バイトを残します。最大は2,560バイトです。 BareMinimumスケッチをコンパイルしても: void setup() { // setup } void loop() { // loop } 私は得る: Sketchは4,548バイト(15%)のプログラムストレージスペースを使用します。 最大は28,672バイトです。グローバル変数は151バイト(5%)の動的メモリを使用し、ローカル変数用に2,409バイトを残します。最大は2,560バイトです。 最低限のスケッチが、割り当てられたプログラムストレージスペースの15%を占めるのはなぜですか?そして、なぜ非常にシンプルなスケッチがプログラムのストレージスペースの17%を占めるのですか?Arduinoのウェブサイトによると: プログラムに多くの文字列を含めると、使いやすくなります。たとえば、次のような宣言char message[] = "I support the Cape Wind project.";は、SRAMに33バイトを入れます(各文字は1バイトに「\ 0」ターミネータを加えます)。 ただし、これらのスケッチのいずれでも宣言された文字列はありません。 私が指定していない他のライブラリ/クラスをインポートまたは使用する可能性があるようです。システムのデフォルトライブラリをインポートするのでしょうか?それとも別のものですか?

2
.ino Arduino SketchはGCC-AVRで直接コンパイルできますか?
さて、ArduinoとC ++やその他の同様の質問など、ウェブ全体でこれらの質問を見てきました。また、回答の大部分は、抽象化された情報以外の方法ではコンパイルの違いにさえ触れません。 私の質問は、.cppファイルまたは他の同様のc ++ファイル拡張子に変更された.inoファイルがGCC-AVRを使用してコンパイルされる方法の(設定ではなく)実際の違いを解決することを目的としています。少なくともArduinoヘッダーファイルを含める必要があることはわかっていますが、それ以上に、たとえばGCC-AVRなどを使用して.inoを.cppファイルにコンパイルすると、コンパイルエラーが発生します。簡単にするために、古典的な瞬きの例を使用して違いを説明しましょう。または、より良いコードスニペットを使用する場合は、必ず、スニペットを回答に含め、違いを完全に説明してください。 どちらがより良い使用方法またはツールであるかについての意見はありません。 ご参考までに。開発にPlatformioを使用していて、コンパイル中にバックグラウンドで変換プロセスが発生していることに気付きました。そこで実際に何が起こっているのかを理解しようとしているので、Arduinoでコーディングすると、「純粋な」C ++バージョンも理解できます。 事前に私の質問にあなたの思慮深い回答をありがとう。

1
CTCモードでのtimer3の設定-サーボライブラリとの競合
1秒あたり800回関数を呼び出すためにタイマーを設定したいと思います。私は1024のプリスケーラーでArduino MegaとTimer3を使用しています。プリスケーラーファクターを選択するには、次の手順を検討しました。 CPU周波数:16MHz タイマー分解能:65536(16ビット) ^ 6 / 16x10:選択されたプリスケーラによって分周CPUのFREQ 1024 = 15625 残りを必要な周波数62500/800 = 19で割ります。 結果+ 1をOCR3レジスタに格納します。 次の表を使用して、TCCR3Bのレジスタを設定しました。 エラー コードをコンパイルすることは不可能です。これは、コンパイラによって返されるエラーです。 Servo \ Servo.cpp.o:関数 '__vector_32'内:C:\ Program Files(x86)\ Arduino \ libraries \ Servo / Servo.cpp:110:multiple definition of '__vector_32' AccelPart1_35.cpp.o:C:\プログラムファイル(x86)\ Arduino / AccelPart1_35.ino:457:最初にここで定義c:/ program files(x86)/ arduino / hardware / tools / avr / bin …

3
マンチェスター図書館はAttiny85のためにコンパイルされません
Attiny85を使用してワイヤレスセンサーを作成しています。arduino unoにデータを送信したいので、315 MHzのRFリンクキットをSpark Funから購入しました。Attiny85にはTXがないため、マンチェスターライブラリを使用することにしましたが、Attiny85ではコンパイルできません。 私はこのブログの手順に従いました:http : //mchr3k-arduino.blogspot.mx/2012/01/wireless-sensor-node-part-2.html?showComment=1338749638806#c853067277980266192 これが私が使用しているコードです: #include <WProgram.h> //otherwise it says it can't find Arduino.h #include <Manchester.h> //include the library to comunicate #define TxPin 2 //the pin that is used to send data int sensorPin = 4; int ledPin = 3; int count = 50; void setup(){ pinMode …

2
avr-gccの基本的なmakefile
arduino用のCプログラムをコンパイルするためのmakefileを作成したいと思います。私はmakeにある程度慣れていますが、avr-gccでこれを使用したことはありません。以下のコマンドをメイクファイルに入れる最も簡単な方法は何ですか? $ avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o led.o led.c $ avr-gcc -mmcu=atmega328p led.o -o led $ avr-objcopy -O ihex -R .eeprom led led.hex $ avrdude -F -V -c arduino -p ATMEGA328P -P /dev/ttyACM0 -b 115200 -U flash:w:led.hex
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.