問題タブ [avr-gcc]

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.

0 投票する
2 に答える
11934 参照

c - 多くのクライアントが印刷した後、Arduino (Uno) イーサネット クライアント接続が失敗する

イーサネット シールドを備えた Arduino Uno を使用しています。

多くの HTTP リクエストclient.println(...)を送信した後、クライアントは接続時に失敗し始めます。失敗するまでの時間はランダムに見え、ループからのシーケンスの読み取り値は ~1000 から ~7000 の間で変化する可能性があります。

エラーは、イーサネット送信バッファのオーバーフローとは関係ありません (このアドバイスに従う)

失敗しているコードは次のとおりです。

エラーは次のセグメントで発生します

0 投票する
0 に答える
521 参照

static - ATmega 328p が static 関数で奇妙な動作をする

ATmega 328p (Arduino イーサネット) を使用して Wiznet W5100 イーサネット コントローラーを制御しようとしています。私が使用しているライブラリはテスト済みで動作しますが、私にとってはそうではありません。問題を追跡したのは次のとおりです。

W5100 が受信したデータのバイト数を示す 2 つのレジスタを読み取ろうとしています。

しかし、データを送信していないにもかかわらず、main() から呼び出されたこの関数は、0 ではなく 1024 を返します。ここで奇妙な部分が発生します。静的キーワードを次のように追加すると、次のようになります。

その後、関数は想定どおりに突然 0 を返します。また、次のように変更することもできます。

これは、コンパイラが私をいじっているに違いありません。私は本当にそれを取得しません。コンパイルするには、標準の Arduino IDE を使用します。コマンドは次のようになります。

この動作の理由は何ですか?

0 投票する
2 に答える
719 参照

avr - インラインアセンブリコードで特定のレジスタを強制することは可能ですか?

私は次のアセンブリコードを持っています:

これにより、次のコンパイラ出力が生成されます

どうすれば次のことを達成できますか?

r24:r25の代わりにr16を使用するようにコンパイラーに指示することさえ可能ですか?そうすれば、ldir25,0x00行で使用されるサイクルカウントを1つ減らすことができます。

ありがとうジャック

0 投票する
2 に答える
1132 参照

c - PWM出力を生成するためにADCの読み取り値を組み合わせたAVR Cの問題

複数のADCチャネルから読み取り値を取得し、それらを単一の信号に結合し、この信号をPWMを介して出力するATMega328P用のプログラムを作成しています。

シングル変換モードを使用して、ADC ポーリングをチャンネルあたり 50Hz に戻すことに成功しました。PWM 生成には Timer/Counter2 を使用し、Timer/Counter2 の比較値を設定するために必要な計算には Timer/Counter1 を使用しています。これは、Timer/Counter1 の ISR です。

私の問題は、PWM 出力が得られないことです。または のどちらsensor_value_0sensor_value_1を設定し1024、もう一方sensor_value_を ADC から読み取るように設定した場合、1 つの完全振幅成分波と振幅変調された成分波が得られます。ただし、ハードコードされたモック振幅に別の値を選択した場合、それほど幸運ではありません (1023たとえば、 )。それ以外の値では、PWM 出力が得られません。両方 の を同じ ADC チャネルを見るように設定sensor_value_すると、2 つの成分波の振幅が同じように変調されることが予想されます。代わりに、PWM 出力が得られません。私にとって最も紛らわしいのは、厳密に 2 の累乗であるハードコードされた振幅の値を選択した場合、すべてがうまくいくということです。

2 の累乗の部分全体が、これを私が見ていない少し厄介な問題のように思わせます。私が明らかに見逃していたに違いないものが見えますか?ヒントをいただければ幸いです。

( SO で可能な限り整理するために、ソース全体をここに投稿しました。)

0 投票する
1 に答える
2410 参照

avr - AVR Studio 5 で AVR Studio 4 プロジェクトをビルドします。

プロジェクトに統合したい AT90USB162 Minimus AVR があります。Minimus USBからデモ コードをダウンロードしました。AVRをCOMポートとして使用するためのドライバです。プロジェクトは AVR Studio 4 用に書かれており、AVR Studio 5 にそのままロードすることはできません。

プロジェクトを AVR Studio 5 で使用するために変換するにはどうすればよいですか?

0 投票する
3 に答える
1332 参照

ada - AVRでのタスク-Ada

AVR-Adaを使用してタスク機能を実装しようとしていますが、makeを実行すると、次のエラーメッセージが表示されます。

では、タスク機能を有効にするにはどうすればよいですか?

私のパッケージには非常に単純なテストタスクがあります:(タスク機能を確認したかっただけです)

0 投票する
5 に答える
5880 参照

real-time - AVRでのマルチタスクRTOS

マルチタスクRTOSを実行したいAT90USB162AVRチップを持っているので、AVRチップで使用できるRTOSを評価しています。どのマルチタスクRTOSがAVRでサポートされていますか?多分QNX?(AVRマイクロチップ上でQNXカーネルを実行することは可能ですか?)

前もって感謝します。

0 投票する
1 に答える
1447 参照

windows - AVR WINAVR コンパイラでの CMake エラー

次の出力で失敗します。

したがって、Linux と Win 7 ではすべて問題ありませんが、XP SP2、SP3 ではこのエラーが発生します。これは、コントローラー用の AVR コンパイラーが正しくなく、CMake が WINAVR コンパイラーを使用したテスト プログラムを提供できないことを意味します。最初にこのエラーを実行したときは Win7 でも発生しましたが、2 回目の実行後には消えました。Windows regにパスを書きました。コンパイラ、sh、cmake へのパスを書き直しました。しかし、エラーはまだ起こります。

0 投票する
4 に答える
2941 参照

macos - Mac OS X 10.7.2 からの OSX-AVR のアンインストール

Mac OS X から OSX-AVR を完全に削除する方法を知っている人はいますか? avr-gcc の新しいサポートが必要なので、AVR 用の CrossPack をインストールしますが、システムに複数の avr-gcc があることによる衝突は避けたいです。OSX-AVR のアンインストールに関するドキュメントが見つからないため、すべてを削除する方法がわかりません。

ありがとう、

0 投票する
3 に答える
808 参照

c - C でいくつかの要件を満たす配列インデックスを追跡する

このような状況はかなり頻繁に発生します。配列をループし、いくつかの要素が何らかの要件を満たしている場合、後でそれらのインデックスを追跡したいとします。これが私が意味することです:

簡単な解決策は、10 要素の配列を作成することです。2 番目の要素が 10 より大きい場合は、index[i] = 1; を実行できます。しかし、私はこのアプローチはあまり良くないと感じています。これを格納するには大きな配列が必要になり、ほとんどのスペースが無駄になります。

私のアプリケーションでは、ビット配列に設定されているビットを見つけようとしています。したがって、ビット 0 と 10 が設定されている場合は、後でプログラムで使用できるようにこれらの数値を保存する必要があります。これについて最善の方法は何ですか?

このコードは AVR Mega で実行する必要があり、私は AVR-GCC を使用しているため、C のみのソリューションが必要です。