問題タブ [attiny]
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.
algorithm - tinyAVR: 8 ビットおよび 16 ビット因数用の最もよく知られている乗算ルーチン?
「avr200b.asmより速い」?いずれの命令も実装していない Atmel の AVR ファミリのプロセッサ用のmpy8u
avr200b.asm からの-routineMUL
は、かなり一般的なように見えますが、mpy16u
両方の下位結果バイトを 8 回ではなく 16 回ローテーションするため、ずさんに見えます。Antonioは、高速な 16×16→16コール/リターンのオーバーヘッドを除く 64 サイクルのワースト ケースを使用した符号なし乗算。最適化の目標として、ワースト ケースのサイクル カウント、ワード カウント(RAM およびフラッシュ)、レジスタの使用量、予想されるサイクル カウントを、優先度の低い順
に任意に提案します。
(芯の減りあり
AVR (「一桁」-ATtiny、10/20/40) には、タイミングなどの違いがありますが、無視することをお勧めします。)
(注意: 少なくとも独立した確約がなければ、ここでの主張を当然のことと考えないでください。)
現在知られている 8×8→8/16、16×16→16/32、および 16×8→16/24 の AVR なしのビット乗算ルーチンはMUL
どれですか?
arduino - AtTiny85 と Arduino 間の簡単な通信 (I2C)
こんにちは、arduino pro mini を I2C 経由で AtTiny85 に接続したいと考えています。
arduino は attiny に LED をオンまたはオフにするように指示する必要があります。arduino は、私の attiny の LED をオンに切り替えることができますが、オフになることはありません。
理由がわかりません。
マスターとスレーブのコードは次のとおりです。
主人:
スレーブ:
avr - Attiny85 のプログラミング
AVR Studio 4 を使って書いたプログラムを ATtiny85 にアップロードする方法を考えていました。私は基本的にこのチュートリアルhttp://blog.smileymicros.com/smileys-workshop-10-moving-beyond-arduino/を使用していましたが、atmega328 の代わりに attiny85 を使用してすべてを実行していました。HighLow tech の ATtiny ライブラリから pins_arduino.h を取得しました。
AVR Studio 4 で正常にコンパイルできましたが、Attiny85 にアップロードする方法を知りたいと思っています。
ありがとう
c - ATTiny と Atmel Studio での 32 ビット数の処理
ATTiny、特に ATTiny24 が 32 ビットの符号なし int をメモリに格納する方法を知りたいです。32 ビット値を取得して、EEPROM の 32 ビット位置に書き込もうとしています。単純なマスクを使用しようとしましたが、試行するたびに、下位 2 バイト (lsb) が正しく取得され、上位 2 バイトはすべてゼロになります。たとえば、0x12345678 を書き込もうとすると、出力は 0x00005678 になります。設定する必要がある Atmel Studio の設定はありますか、それともマスキング以外の方法を使用する必要がありますか?
最終的には、32 ビットのカウンター値を読み取り、それを EEPROM の特定の場所に書き込めるようにしたいと考えています。現在、既存の回路の修正に取り組んでいるため、シリアル出力でデバッグする余裕がありません。
コード スニペット:
主に:
機能:
EEprom_Long_Write:
EEPROM_書き込み:
c++ - TinyWireS ライブラリの I2C アドレスの問題を修正
最近、I2C (スレーブ) ライブラリTinyWireSで発生した問題を投稿しました。なんらかの理由で、63 を超えるスレーブ アドレスを使用できませんでした。
この問題を解決するために、新しいスレッドを開始したいと思います。
私のプロジェクトの詳細については、こちらの前回の投稿で確認できます。マスターとスレーブのコードと回路は同じままです。
私が見つけたもの:
マスターが特定のアドレスでスレーブと通信しようとすると、スレーブは ISR 関数を呼び出します (ファイル: usiTwiSlave.c 行: 569)。この関数は、アドレスが正しいかどうかをチェックするため、マスターが別のスレーブに送信する場合でも呼び出されます。
しかし:
マスターにスレーブに接続するように指示すると > 63 ISR が実行されません。残念ながら、ISR 関数がどこで呼び出されているかわかりませんでした。すべてのファイルを検索しましたが、「親」関数が見つかりませんでした。
私はバグを見つけるのに近づいていると確信していますが、C/C++ の経験はあまりありません。
あなたが私を助けてくれることを願っています!