問題タブ [avr]

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 投票する
5 に答える
31437 参照

microcontroller - AVR マイクロ コントローラーでロータリー エンコーダーを使用する

ロータリー エンコーダを AVR マイクロ コントローラで正しく動作させるのに問題があります。エンコーダーは機械式ALPS エンコーダーで、 Atmega168を使用しています。

明確化

I have tried using an External Interrupt to listen to the pins, but it seems like it is too slow. When Pin A goes high, the interrupt procedure starts and then checks if Pin B is high. The idea is that if Pin B is high the moment Pin A went high, then it is rotating counter clock-wise. If Pin B is low, then it is rotating clock-wise. But it seems like the AVR takes too long to check Pin B, so it is always read as high.

I've also tried to create a program that simply blocks until Pin B or Pin A changes. But it might be that there is too much noise when the encoder is rotated, because this does not work either. My last attempt was to have a timer which stores the last 8 values in a buffer and checks if it is going from low to high. This did not work either.

I have tried scoping the encoder, and it seems to use between 2 and 4ms from the first Pin changes till the other Pin changes.

0 投票する
21 に答える
12708 参照

embedded - 組み込みプログラミングを学ぶのに最適なプラットフォーム?

私は組み込みプログラミングについて学びたいと思っています (主に C ですが、ASM についてもブラッシュアップしたいと考えています)。最適なプラットフォームは何かと考えていました。Atmel AVR を使用して stk500 でプログラミングした経験があり、比較的簡単であることがわかりました。特に AVR Studio と、レジスタの状態を表示できるデバッガが気に入っています。

しかし、時間をかけて学ぶとしたら、むしろ業界で流行している何かについて学びたいと思います。私はARMを考えています。それは、誰かがより良い提案をしていない限りです。

また、参考資料も探しています。ARM Web サイトで本のセクションを見つけました。技術的に優れた本があれば、ぜひお知らせください。

私が探している最後のものは、いくつかのボタンなどを備えた STK500 のようなプロトタイピング/プログラミング ボードです。

ありがとう=]

0 投票する
6 に答える
5727 参照

embedded - 初心者のためのシンプルなシリアルAVRプログラマー

AVR atMegaおよびatTiny用のシリアル(RS232)プログラマーを作成するための安価で良い方法は何ですか?インターネットにはいくつかの回路がありますが、どれが優れていますか?

いくつかの標準ツールを使用して、LinuxおよびWindowsからコントローラーをプログラムできるようにしたいと思います。

0 投票する
8 に答える
2870 参照

embedded - 組み込み CPU と PC 間の通信に使用されるプロトコル

PCに接続することになっている独自のCPU(AVR Mega8)を備えた小さなデバイスを構築しています。物理的な接続とバイトの受け渡しが完了したと仮定すると、これらのバイトに加えて使用するのに最適なプロトコルは何ですか? コンピュータは、デバイスに特定の電圧を設定し、他の特定の電圧を読み取ることができる必要があります。

現時点では、完全にホスト主導の同期プロトコルを考えています。つまり、コンピューターが要求を送信し、組み込みの CPU が応答します。他のアイデアはありますか?

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

embedded - (avr-gcc) サブディレクトリの Makefile サポート

AVR プロジェクトに取り組んでおり、コードを含む複数のフォルダーがあります。

私が使用しているメイクファイルは、Pat Deegan による「Standardized AVR Makefile Template」です。すべてのフォルダー内のすべての cpp ファイルを正しくコンパイルし、適切なオブジェクト (.o) ファイルを生成できます。

ただし、リンカはサブフォルダ内の .o ファイルを検索しようとするため失敗します (コンパイラはそれらをメイン フォルダに置きます)。これは私が得るエラーの例です:

avr-gcc: subfolder/module.o: そのようなファイルまたはディレクトリはありません make: ***

[GrandCanyon.out] エラー 1

リンカーとコンパイラーがファイル (.o) を同じフォルダーに配置してチェックするように変更するのを手伝ってもらえますか?

ありがとうございました

ここでメイクファイルを入手できます: http://electrons.psychogenic.com/articles/Makefile.tpl

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

c - WinAvrプログラミングに必要なヘルプ

winavrのソースコードを実行しようとしています。makefileを作成した後、avrdudeを使用して送信しようとすると、エラーが発生します。

誰か助けてください

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

c++ - winavrでヘルプが必要

---.hex ファイルをシリアル ポート経由でシーメンス C55 に送信しようとしていますが、実行中にエラーが発生します

"make.exe" プログラム avrdude -p atmega8 -P com2 -c stk200 -U flash:w:gsm_remote.hex avrdude: ポート名 "com2" は lpt1/2/3 でも有効な番号でもありません avrdude: デバイスを開けません " com2"

avrdude: パラレル ポート "com2" を開くことができませんでした

make.exe: *** [プログラム] エラー 1

ソースコードは http://www.4shared.com/file/88235332/4b2370f8/080324-11.htmlでも入手できます

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

c++ - エラー:「constprog_uchar *」から「byte」へのキャストは精度を失いますか?

エラーは次の行にあります:

dataArrayは次のとおりです。bytedataArray[NUMBER_LED_MATRIX][NUMBER_ROW_PER_MATRIX];

bufferPatternは:const patternp * bufferPattern;

patternpは、次のタイプのtypedefです。typedefprog_uchar patternp [NUM_ROWS];

リファレンスで、prog_ucharが1バイト(0〜255)であることがわかります。だから私は精度を失うことについてのエラーを理解していませんか?何か案が?

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

c - ポインタメモリエラー

問題

Flash で必要なパターンのアドレスを返す関数を使用しているときに、Flash メモリからデータを取得できません (以下の例では、1 つの定数のみ: PATTERN_P で簡略化されています)。

説明前のコード

タイプpatternpは次のように定義されます。

グローバル PATTERN_P 変数は、型 patternp の配列であり、次のように定義されます。

getpattern():

主要():

説明

ご覧のとおり、コードはパターンを取得します (この例では、フラッシュ メモリからデータを取得するために pgm_read_byte を使用するよりも、毎回 PATTERN_P を返します。これは AVR pgmspace (以下のリンク) を使用します)。上記のコードは、テンプレート &PATTERN_P[iRow] の直接アクセスを使用すると機能しますが、bufferPattern[iRow] または &bufferPattern[iRow] を使用すると機能しません。

参考:pgm_read_byteはpgmspaceに定義されています

0 投票する
20 に答える
71498 参照

unit-testing - Arduinoコードを単体テストするにはどうすればよいですか?

Arduino コードを単体テストできるようにしたいと考えています。理想的には、コードを Arduino にアップロードしなくてもテストを実行できるようにすることです。これに役立つツールやライブラリは何ですか?

便利な開発中の Arduino エミュレーターがありますが、まだ使用する準備ができていないようです。

Atmel のAVR Studioには便利なチップ シミュレータが含まれていますが、Arduino IDE と組み合わせて使用​​する方法がわかりません。