AVR(含Arduino)に関する覚書

AVR(含arduino)に関するメモを記録する

arduinoIDE

168/328 3.3V用に1.7.11を残しておいたがライブラリの共存ができなくなり動作不良となった

(対策)IDE 1.8.9にてボード:Arduino Pro or Pro Miniとすればプロセッサ168/328 3.3V 8MHzが選択できスケッチの書込みとスケッチの正常動作を確認(2019.8.26確認)

ピン配置

(ATMega168P/328P)

ATMega168_pinout.png

(ATtiny85)

attiny85.png

(ATtiny13a)

attiny13a1.png

仕様
ATtiny13A-PU ATtiny85-20PU
ROM 1kBytes 8kByes
RAM 64Bytes 512Bytes
動作読度 20MHz 20MHz
動作電圧 1.8~5.5V 2.7~5.5V
直接ピン操作する場合
レジスタ 動作 操作
DDRn ピンがINPUTかOUTPUTかを決定 R/W
PORTn ピンのHIGH/LOWを制御 R/W
PINn INPUTピンの状態の読み取り R/O

n := B or C or D(PB1ならBの1ビット,同様にPD6ならDの6ビット)

出力ピン指定

DDRB |= (_BV(OUT1)|_BV(OUT2));    //pinMode(OUT1, OUTPUT); pinMode(OUT2, OUTPUT);

入力ピン指定

DDRB &= ~_BV(IN1);                //pinMode(IN1, INPUT);

入力プルアップピン指定

内蔵のプルアップ抵抗を有効にする場合は、DDRnで該当のピンを入力にした後,そのピンをHIGHに設定する(有効にしない場合はLOWに設定する)

PORTB |= _BV(IN1);                //pinMode(IN1, INPUT_PULLUP);

ピン出力

PORTB |= _BV(OUT2);               //digitalWrite(OUT2, HIGH);
PORTB &= ~_BV(OUT2); //digitalWrite(OUT2, LOW);

ピン判定(avr/sfr_defs.hで定義)

#define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit))
bit_is_set(PINB, PB1);            //PINB & (1<<PB1)と同じ
情報リンク
既存エントリ
新規まとめ

目次