日々の生活を好き勝手につづったブログ(My blog is written by inoshita.jp)
AVR(含arduino)に関するメモを記録する
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)
(ATtiny85)
(ATtiny13a)
項 | 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)と同じ