問題タブ [atmega]
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.
avr - atmega128で10秒の遅延のためにウォッチドッグタイマーを設定する方法
私はATMEGA12816ACを使用しています。だから私はウォッチドッグタイマーを使って少なくとも10秒後にAVRをリセットしたい。たとえば、キーパッドキーが10秒以内に押されない場合、コントローラーは再起動する必要があります。
wdt_enable(value);のようなライブラリ関数を試し、WDTCR regも構成してみましたが、10秒の遅延を取得できませんでした。
この問題で私を助けてください。
前もって感謝します。
c - 仮想ポートはatmega MCUで動作しますか?
設計でポート全体を見つけることができませんでしたが、プログラムを統一したいので (ピンを変更すると、この配列を変更するだけで済みます)、配列で定義して仮想ポートを作成します。操作するときは、これらの仮想ピンをそれぞれループに設定します。これは、以下のマクロ コードと同じです (もちろん、ポートとピンに対して 2 つの配列を別々に定義できます)。配列 (ピン) の長さは、コンパイル前は可変 1 (おそらく 2/3/4 ピン) ですが、これは重要ではありません。
これが可能なら?関数またはマクロを使用しますか? またはポインタ操作へのポインタ?
arduino - AVR TWI インターフェースの使用に関する問題
atmega2560 を使用して HMC5883L モジュールにアクセスしようとしています。I2C 通信に不可欠な基本的なメソッドを含むクラス (I2C) を作成しました。
まず、問題を説明します。これは私がやったことです。
(用語には通常の意味があると考えてください。SLAW = SLA+W (スレーブアドレス + 書き込み)...)
while ループに至るまではすべてうまくいきます。ループでは、でスタックするようですi2c.stop()
i2c.stop()
このように実装されています。
私は何か間違ったことをした ?どうすればこれを解決できますか?
(他のすべての機能は、データシートの例のように簡単に実装されます。)
assembly - ビット演算、アセンブリ
ビット位置を変更するタスクがあります
START ビット 7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット 1 | ビット0
FINAL ビット 3' | bit2' | ビット7 | ビット6 | ビット 1 | ビット0 | bit5' | bit4'
ビット単位およびシフト/ローリング命令の使用。
シフトとローリング以外の方法でそれらを移動する方法がわかりません。そのためには、1 つまたは複数のレジスタのみを使用する必要がありますか?
c - エラー:ポイズニングされた「SIG_OUTPUT_COMPARE0A」を使用しようとしました
atmega168aのCコードを書いています。以下のコードをコンパイルするattempt to use poisoned "SIG_OUTPUT_COMPARE0A
とエラーが発生しました。attempt to use poisoned "SIG_OUTPUT_COMPARE0B
しかし、 http://www.protostack.com/blog/2010/09/timer-interrupts-on-an-atmega168/ISR
で同様の関数の使用法が見られます。誰かが私が間違っていることを教えてくれたら幸いです。私はatmelstudio6.0とそのgccを使用して、Windows7PCでコードをコンパイルしています。
gcc - Makefile 循環依存 + No such file エラー
テンプレートを使用して avr gcc プロジェクトのメイクファイルを作成しようとしています。これを書くのは初めてです (これまでのところ、AVR Studio 4 に組み込まれているデフォルトの makefile を使用しています)。
コンパイルしようとすると、エラーが発生します
これは私のメイクファイルです
私がここで間違ったことを助けてくれますか?
ありがとう!
c - AVRプログラミングで16ビットタイマーをアクティブにする方法
私はatmega168aチップを持っています。私は、サブルーチンを使用して割り込みCounter 0
を切り替えるために使用します。when条件がtrueの場合にアクティブにします。だから、私はを使用しますが、この行は、カウンターが値になっているときにのみ16ビットタイマーを中断したい場合に、即座に割り込みを呼び出します。インスタント割り込みを発生させずに、ランタイムで16ビットタイマーをアクティブにするにはどうすればよいですか?PORTC
ISR(TIMER0_COMPA_vect)
ISR(TIMERB_COMPA_vect)
16-bit timer
if
TIMSK1 = (1<<OCIE1A)
ISR(TIMER1_COMPA_vect)
reaches
OCR1A
これが私のコードです:
これは、信号0を瞬時に設定するため、割り込みを瞬時に設定したくない理由を示すオシロスコープの出力です。
c++ - Arduino インライン ASM が期待どおりに動作しない
私は時計を作ろうとしているので、ASM と arduino を使っています。ほとんどの場合、プレーン C で問題ありませんが、BCD から 10 進数へのコンバーターに出力する時間を準備するために、ASM を使用することにしました。8086 C++/ASM で次のコードを書きましたが、私のコンピューターでは問題なく動作します。
ただし、Arduinoで実行するように変更すると、完全に機能しなくなります。
8086 コードは、期待どおりの出力を提供します。
0: 0000
1: 0001
2: 0010
3: 0011
...
13: 1101
14: 1110
15: 1111
しかし、Arduino で実行されたコードは、別の出力を提供します。
0: 5000
1: 0000
2: 0000
3: 0000
... (ゼロが続く)
13: 0000
14: 0000
15: 0000
ご想像のとおり、5 を返すと、コードは役に立たなくなります。そして、ソースに 5 に近いものがない場合に 5 を返す方法についてはわかりません。私はここで何をすべきか途方に暮れているので、本当に助けが必要です.
ATMega32U プロセッサを搭載した Arduino Leonardo を使用しています。Arduinoソフトウェア(AVR-GCCでコンパイル)によって生成された実行可能ファイルを逆アセンブルしようとしましたが、入れたコードを見つける努力のどこにもたどり着けないようです.
お時間をいただきありがとうございます、Stack Overflow。
assembly - バイトを逆にする方法
私は現在プロジェクトに取り組んでおり、バイトの順序を逆にする必要があります。現在、AVR Studio Mega32 マイクロコントローラを使用しています。
例えば:
まず、私はこれを持っています:
r20 が 01101000 になるようにバイトを逆にする最も簡単な方法は何ですか?
embedded - Register access in ATMEGA32 & Debugging of Serial Communication Atmel Studio
I am working upon ATMEGA32 and programming it with the help of Atmel Studio 6.0.............
In ATMEGA32, there are 32 general purpose registers starting from R00 to R31........but how can i use those registers directly in c language in Atmel Studio 6.0.......
R00 = x; instruction does not work...................so i am forced to use integer variables, but i want to use inbuilt registers so i can easily debug it how can i do it??????
My 2nd question is i am using USB to serial asynchronous communication, so while debugging i want that some value should be passes virtually via serial communication so that i can check my code...................how can i do that in Atmel Studio 6.0??????