問題タブ [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.

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

assembly - アセンブリ - 割り込みに 2 つ以上のボタンを使用していますか?

Atmega8535 マイクロコントローラを搭載した STK200 ボードを使用しています。INT0 と INT1 ボタンを外部割り込みとして使用しますが、INT0 を初期化するにはビット 6 を 1 に設定し、INT1 を初期化するにはビット 7 を 1 に設定する必要があるため、他のボタンを初期化するスペースがありません。

講師から、より多くのボタンを使用して割り込みを発生させることは可能ですが、それは私が勉強している年 (1 年ソフトウェア工学) に必要な知識を超えていると言われました。

割り込みがなければ、ボタンの処理方法がわかりません。したがって、ボタンを処理する方法、またはより多くのボタンを割り込みとして使用する方法の提案が必要です。

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

atmel - ATMEGA32 UART通信

ATMEGA32 で UART 非同期通信用のコードを書いていますが、UCRC と UBRRH のレジスターに 2 つの diff 値を与える方法がわかりません。これらのレジスターは同じ場所にあり、それらの機能に従って、これらのレジスターに 2 つの diff 値が必要です。

データシートによると、UCRCC に書き込むには URSEL ビットをセットする必要があり、UBRRH に書き込むには URSEL ビットをリセットする必要があります。しかし、Atmel Studio 6.0 では、URSEL = 1 は両方のレジスターに何も書き込みません。一方、URSEL = 0 の場合、両方のレジスターに同じ値が書き込まれます (これらのレジスターに割り当てられた作業のために、これは必要ありません)。 .......

私は Atmel Studio 6.0 デバッガーでこれらすべてをチェックしました。

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

assembly - ATMega 48P は FPWM タイマーを備えた 2 つの DC モーターに電力を供給します。

そのため、ラボの割り当てを実行しようとしており、ピンをパルスするように設定することでこの問題に遭遇し続けています。PWM モードで 2 つのタイマーを使用して正弦波を生成し、モーターを駆動したいと考えています。ある時点でタイマーがポートを「(OCR*A)」点滅させ、別の「(OCR*B)」で再び点滅し、カウンターをゼロにリセットする必要があります。

OCR * AとOCR * Bの違いを制御できる限り、ポートのどのピンがちらつくかはあまり気にしないので、たとえば、あるピンで70%の電力を取得し、別のピンで30%の電力を取得できます。2 つのタイマーが必要なので、独立したモーター制御を行いますが、モーターを異なるデューティ サイクルに設定できる限り、1 つのタイマーでそれを行うことができれば問題ありません。

最後の落とし穴が 1 つあります。私のコードはすべてアセンブリ コードでなければなりません。私はあなたに私のコードを書いてほしくないのですが、私はマニュアルを何度も読んでいて、タイマーを間違って設定したことに困惑しています。

ここに私がこれまで持っているコードがあります。私のコードの書き方では、OCR2A と OCR0A がちらつくはずですが、よくわかりません。お知らせください。また、よろしくお願いいたします。


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

timer - Arduinoナノタイマー

Arduino Nanoタイマーについてもっと知りたいです。

  1. どんなタイマーがありますか?
  2. それらは割り込みを生成しますか?
  3. それらに割り込みハンドラをアタッチするコードはどれですか?
  4. どのようdelay()delayMicroseconds()実装されています...
    • 彼らはタイマー割り込みを使用していますか?(そうであれば、この間に他のコードを実行するにはどうすればよいですか?)
    • それとも、タイマーが特定の値に達するまで繰り返しポーリングしますか?
    • それとも、値を X 回インクリメントしますか?
    • それとも彼らは別の方法でそれをしますか?
0 投票する
0 に答える
892 参照

inline-assembly - `asm("" : "+r" (myVar));` は AVR-GCC で何を意味しますか?

他の人のコードで次の行を見つけました:

someConstantFactorVariable頻繁に使用される関数内にあり、コードの作成者は、変数をレジスタに永続的にロードすることを望んでいたと推測しています。私は正しいですか?register変数定義のキーワードの代わりにこのメソッドを使用する利点は何ですか?

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

assembly - Atmega8535 INT0 INT1 INT2 INT3

Atmega8535 マイクロコントローラと STK200 開発ボードを使用しています。複数の外部割り込みを使用しようとしていますが、何らかの理由で INT0 のみが機能し、他は何もしません。関連するコードは次のとおりです。

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

c++ - AVR マイクロコントローラーで TX433 および RX433 RF モジュールを実行する

RF モジュールを AVR ATmega 128 と接続しようとしています。このコードは面白いと思いましたが、次の 2 行を理解できませんでした。

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

python - pyserial を使用したシリアル接続でバイナリ データを送信する

序文として、私は今本当に迷っているので、何を言っているのかわからないので、意味をなさないことを言っているかもしれません. 役立つ限り、私の質問を自由に分析してください。

さて、私が取り組んでいる全体的なプロジェクトは、Python でプログラムを作成して、カスタム ビルドの温度制御ユニット (このチップでビルド) とインターフェイスし、データ ポイントが格納されているメモリ バッファーからデータをコピーすることです。

私はそれをプログラムした人ではなく、Arduinosでの限られた経験から抜け出しました(また、Pythonも初めてです)。これは、それとインターフェースするためのコマンドに関して私が送ったものの一部です:

私は問題なく使用でき、16進数に変換されたものcon.write('p')を使用すると、7045516403が返されます(送信および返される値はリトルエンディアンであることに注意してください)con.readline()\x00\x00pEQd\x03

私の問題は「d」コマンドにあります。「d」を 2 つの 32 ビット バイナリ値とともに文字列として送信する必要があると思いますが、その方法がわかりません。質問するのが正しいかどうかさえほとんどわかりません。皆さんができる助けがあれば大歓迎です。

インターネットリソースを(何時間も)調べていると、構造体またはこのようなものを使用したいと思うかもしれません。シリアル ポートへの接続、書き込み、および読み取りのプロセス全体を示す例が本当に好きです。