2016-12-01 7 views
0

Atmel Studio 7にインストールして使用したプログラムを書いています。 Arduinoのスタジオをセットアップし、Atmega128をサポートされているチップライブラリに追加しました。すべてがそこに良いです。 SoftwareSerialライブラリを使用してコンパイルしようとすると、Atmega128とAtmega64がSoftwareSerialをサポートしていないというエラーが表示されます。どうしてこれなの? atmega328などと比較して、このAVRの違いは何ですか?それはライブラリをサポートしません。 atmega128でSoftwareSerialまたはSoftUartを使用する方が良い方法はありますか?ありがとうなぜSoftwareSerialがAtmega128で動作しないのですか

+1

正確なエラーメッセージは何ですか? –

答えて

0

このコンパイルエラーに遭遇しましたか:This version of NewSoftSerial supports only 20, 16 and 8MHz processors

これはcppファイル内のこれらの定義に由来します。 F_CPUを8000000と定義し、クロック速度を設定するために実際にレジスタを設定しているかどうか確認するとうまくいくかもしれません。一部のプロセッサは、デフォルトでは低速のクロック速度を使用します。ハードウェアマニュアルを参照してください。

F_CPUは、NewSoftwareSerial.cppファイルが処理される前に定義する必要があることに注意してください。 Dスイッチを使用して、コマンドラインで定義を作成することができます。私の研究を通して

#if F_CPU == 16000000 

[snip] 

#elif F_CPU == 8000000 

[snip] 

#elif F_CPU == 20000000 

[snip] 

#else 

#error This version of NewSoftSerial supports only 20, 16 and 8MHz processors 

#endif 
+0

こんにちは、返信いただきありがとうございます。コンパイル時にF_CPUエラーが発生しませんでした。そして、はい、私は16MHzにF_CPUを設定しました。唯一のエラーは、特に "ATmega64とATmega128はSoftSerialをサポートしていません!"ということです。私がSoftwareSerial.hファイルを見ると、実際には44行目にコード化されています。 – Eddie

0

、Arduinoのライブラリを使用して設定しながら、その含まSoftwareSerialライブラリがあるためPINの違いのatMega64とATMEGA128をサポートし、これらのチップ上で中断されません。私は、this exampleを変更することによって、atMega128の他のGPIOピンにsoftserialを設定しました。この例は送信専用です。私はそれが割り込みとクロッキングを設定する必要があるので、まだ受信部分で作業しています。覚えておくべき重要な点は、プロジェクト全体でクロック設定が一致し、シリアルボーが適切に設定されていることを確認することです。私はいくつかの異なるボーレートを使ってコードをテストしました。

初心者向けのメモとして、私はArduinoでのテストが素晴らしいことを発見しました。しかし、カスタムビルドCプロジェクトに移行しようとすると、ArduinoプロジェクトからクリーンCプロジェクトに移行することは非常に困難です。私の意見では、Atmel Studio環境でC言語を学び、Arduinoから離れたほうが簡単です。私はこれがプログラミングから始めて誰かを助けることを願っています。

関連する問題