問題タブ [winavr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
makefile - WINAVR が空白を含むインクルード パスでファイルを見つけられない
EXTRAINCDIRS のパスを空白なしで (Makefile で、WINAVR によって提供されたサンプルに従って) 提供すると、コンパイラはヘッダー ファイルを見つけることができますが、空白を含むパス (コメントのように引用符で囲みます) を使用すると、 Makefile 直接)、それは発生します: error: No such file or directory
.
つまり、コメントは次のように述べています。
WINAVR にこれを正しく処理させる方法はありますか?
Windows XP で Programmer's Notepad (WINAVR) を使用しています。コマンドラインコマンドは次のとおりです。
c - 関数に文字列を渡す埋め込み C
マイクロコントローラの出力にバイト単位で C の文字配列を送信しようとしています。私は次のコードを使用しています:
ただし、これは最初の2文字「He」のみを送信します---私が間違っていることを誰か知っていますか?
avr-gcc - avr-gccで自分自身を使用して変数を変更できませんか?
マイクロコントローラーの C コードで問題が発生しています。言語またはコンパイラの問題のようですが、プログラムは問題なくコンパイルされます。ただし、マイクロコントローラで実行すると、問題が明らかになります。
(これは Atmel AVR AtTiny26 用です。)
アナログからデジタルへのコンバーターから値を読み取り、10 を掛けています。
これは正しく機能しませんでした。計算でADCから読み取ろうとすることが問題だと思ったので、試しました:
これも機能せず、マイクロが不安定になりました。(アナログ値が低い限り機能しますが、ある値に達すると、リセットするまで ADC から値を取得することはありません。)
これはうまくいくようです:
別の変数を導入すると問題は解決しますが、ややこしいようです。どうしたの?
EE に関する関連質問: https://electronics.stackexchange.com/q/38404/2028
編集:
これは、コンパイルの最適化に関係している可能性があります。コンパイル時にコマンド ラインで -Os と -O2 または -O3 を指定すると、異なる結果が得られます。最適化によって、そのような変数割り当ての仕組みが変わる可能性はありますか?
cryptography - AVR Crypto Lib の AES 関数がコンパイルされない
AVR プロジェクトで AVR Crypto Lib (http://avrcryptolib.das-labor.org/trac/wiki/AES) で AES 機能を使用しようとしていますが、必要なファイルをすべてコピーすると、以下のエラーが表示されます。 . 私は Windows で WinAVR を使用しており、AVR Studio 5 でデフォルト プロジェクトを使用してこれを試しましたが、成功しませんでした。
これらの関数が存在する .c ファイルを読み取ろうとさえしないようです。Web サイトの例では、#include "aes.h" を呼び出すように指示されており、そのファイルを見ると、他のすべての .h ファイルが呼び出されます。
.h ファイルを編集して、それ自体の .c ファイルをインクルードするように指示すると、たとえば aes_keyschedule.h に「aes_keyschedule.c」をインクルードするように指示します問題。asm .S ファイルに到達すると、最終的にはコンパイルされません。確かにこれはうまくいく方法ではありませんが、他の誰かがこれをコンパイルする方法を知りません。
だから私は尋ねようと思いました-他の誰かがこれを経験しましたか、それとも私が見ることができる非常に単純なAESの例を誰かが持っていますか? AVR Crypto Lib よりも優れたものがあるのではないでしょうか?
ありがとう、アレックス
file - WinAVR とネイティブ Windows コンソール アプリ
私は C の経験が豊富ではありませんが、WinAVR を使用していくつかの趣味のプロジェクトでファームウェアを楽しくハッキングしてきました。私は視覚障害があるので、グラフィカルにわかりにくい IDE よりも、make ファイルとコマンド ラインを使用する方が好きです。
Windows コンソール プロンプトで、何が起こっているかを示すいくつかの printf ステートメントを使用して、アルゴリズムを実行したい場合があります。しかし、GCC のネイティブ Windows バリアントをインストールして、作業中の WinAVR インストールを台無しにしたくはありません。
続行するための最良の方法は何ですか?
microcontroller - Atmega8 のタイマー コードを Atmega16 に実装する
このコード スニペットは、Atmega8を使用したクラッパー回路から取得した Atmega8 用に書かれています。このコード スニペットを Atmega16 用に簡単な説明で変換できますか。Atmega16にも同じことを実装しようとしていて、タイマー部分に問題があります。
avr - memcpy_P 関数 AVR?
void * memcpy_P( void * dest, PGM_VOID_P src, size_t n )
上記の関数が avr libc ライブラリのどこに実装されているか教えてください。
実際の実装ではなく、いくつかのヘッダー ファイルで関数の定義を見つけることしかできないようです。
これを実行したい理由は、現時点では AVRAtmega128rfa1 でパフォーマンス テストを行っており、関数の AVR アセンブリ コードを確認し、実行にかかる時間を確認する必要があるためです。
ありがとう。
c++ - AVR-Cエラー:'<'トークンの前に'='、'、'、';'、'asm'または'__attribute__'が必要です
私は現在、Arduino USBホストシールド用に作成されたコードライブラリを取得し、Arduinoコアライブラリから切り離して、Arduino以外のマイクロコントローラープロジェクトでコードを使用できるようにしようとしています。
コードを見ると、Arduinoコードベースへの強い依存関係はあまりありませんが、おそらくArduinoビルドシステムとLUFAビルドシステムの違いが原因で、いくつかの奇妙なエラーが発生しています。具体的には、ヘッダーファイルの約75%で、それぞれ数十回、次のエラーが発生します。
エラーがエラー内の異なるトークンを示している場合もありますが、それでも同じエラーです。さまざまなフォーラムやStackOverflowで同様の問題をたくさん見つけましたが、解決策は毎回異なる傾向があります。
明確にするために、このコードはArduinoビルドシステム内で100%正常にコンパイルされますが、LUFAテンプレートmakefileを使用してWinAVRで直接ビルドしようとすると、これらのエラーが発生します。コードを調べた結果、次#define
のようないくつかの値が必要であると判断しました-DARDUINO=102
(または、少なくともいくつかの値> = 100ですが、使用しているArduino IDEのバージョンは1.0.2であるため、次のようになりました。使用するのに良い値)。
ですから、私が欠けているものを理解するのを手伝ってくれるArduinoビルドシステムに精通している人を探していると思います。完全なコードライブラリはここにありますが、コードライブラリ全体を含めずに問題を示す簡単な例を提供するために、ここにありますprinthex.h
。
Arduino.h
インクルードパスにコピーしたこと、およびArduino.h
メイン.c
ファイルにインクルードすると正常にコンパイルされるため、問題は発生しないことに注意してください。ただし、を含めるprinthex.h
と、次のようになります。
26行目、41行目、および56行目は、次の3つのインスタンスです。
私は困惑しています。どうすればこの問題を解決できますか?
microcontroller - .c を .hex にコンパイル中 - cc1.exe: エラー: avr25: そのようなファイルまたはディレクトリはありません
今日、ついにArduino Uno経由でattiny2313aをプログラムすることができました。テストまばたきプログラムでした。アップロードした後、LED が 1 秒ではなく 8 秒遅れて点滅するのを確認したので、Makefile と main.c のクロック設定を変更して、チップを再度書き込むことにしました。そのため、Makefile と main.c の両方で 8000000 を 1000000 に変更しただけでmake flash
、cmd (Windows シェル) で実行しました。以下は出力です。
このエラーが発生するのはなぜですか? プログラムを一度しかコンパイルして書き込むことができなかったのはなぜですか? 新しいものを削除したり追加したりしませんでした。実際、私はそれらのクロック設定以外には何も触れていません。しかし、元の設定 (8000000) に戻しても、同じエラーが発生します。
私のメイクファイル
私のmain.c
c - クロックパルスの生成・出力(Cコード)
Ethernut 2.1 B を使用しており、タイマー 1 の出力 B、つまり出力 OCIB でクロック信号を出力する C プログラムが必要です。クロック信号の周波数は 1.0 kHz である必要があります。
これを行う方法を知っている人はいますか?