2012-07-01から1ヶ月間の記事一覧

AVR基礎(タイマー)

単純なタイマーは TCCRxA と TCCRxB レジスタに値を設定するだけで開始される。TCNTx を参照するとカウント中の値が得られる。 下記プログラムは PB0 - PB7 に LED を接続して実行。ビット出力の様子が見られる。 最上位ビット (PB7) が 1KHz をさらに256(2^…

AVR基礎(I/Oポート|スイッチのチャタリング対策)

スイッチの値を読み込む際にチャタリング対策を追加する。 _ms_delay(10)の待ち時間後、状態が変化していれば、変化があったとみなす。 //sw_test1.c にチャタリング対策を追加したコード #include #include uint8_t switch_a, switch_ax; int main(void) { …

AVR基礎(I/Oポート)

I/O ポートを使うには下記レジスタを使う。 1. DDRx (方向レジスタ)で入力するのか、出力するのかを設定。1を立てたら出力。 2. PINx (入力レジスタ)で入力の取得 3. PORTx (出力レジスタ)で出力 出力する場合は、BV() を使うとそのビットのみを設定できるの…