ATmega328P

スポンサーリンク
Programming

ATmega328PB徹底比較:328Pから乗り換えるべき7つの理由と注意点

最初にざっくり要点 ATmega328PBは 328Pと完全ピン互換を保ちつつ、通信×2・PWM×8・ADC×8に強化。 Timer3/Timer4の追加で10-bit高解像度PWMがネイティブに使える――LED調光や精密モータ制御が一気に楽! PE0/PE1は元GND/VCCピンがI/O化。旧基板流用派はショート破損リスクに要注意。 UART/SPI/I2Cが2ポートずつ。GPS+BLEなど同時接続の配線地獄を一蹴。 タッチセンサ16ch内蔵で静電容量スイッチがライブラリ一発。 筆者実測でArduino IDEビルドはそのまま。328P用ソースを9割流用可。 パ...
Programming

Arduino UNOをインラインアセンブラで爆速Lチカ!標準関数との実行速度・バイナリサイズ徹底比較

要約まとめ Arduino UNO でインラインアセンブラを使うと、LED 点滅 1 万回が4 msで完了。標準関数では67 ms ― およそ 1/16 の高速化 コンパイルサイズも640 B → 924 Bと 284 B 削減。メモリ節約は地味に効く asm volatile() ひとつでレジスタ直叩き。レジスタ名・ビット位置は ATmega328P のデータシートで必ず確認 ハードウェア制御・厳密タイミングが必要な場面では「C+インライン ASM」が最後の切り札 ただし可搬性ゼロ。ボードが違えばレジスタも違う ― “高速化の前に保守性” のジレンマも要チェック ア...
Programming

Arduino UnoのdigitalWrite/pinModeをレジスタ直叩きで50倍高速化する方法【実測比較&サンプル付き】

要約まとめ digitalWrite() / pinMode() は便利だが激遅 ― 毎呼び出しで数µsをロス。大型プロジェクトでは致命的。 レジスタ直叩きで約30〜50倍高速化。フラッシュサイズも縮小し、処理落ちリスクを一掃。 avr_pinMode / avr_digitalWrite をドロップインで置換できるサンプルコードを公開。 比較表と FAQ で疑問を一掃。安全に導入するための落とし穴と対策も網羅。 ATmega328P 以外の AVR でも応用可。ポートの対応表を用意すれば OK。 なぜ digitalWrite() は遅いのか? Arduino 標準関...
スポンサーリンク