fc2ブログ

AVRマイコンの自分への覚書的な何か part.2 ?

どうも,いつまでやるんですかね?ryou.です.

今回は入力です.

スイッチまたはケーブルをご用意ください.

配線としてはPB0にスイッチが繋がって押されるとGNDに落ちる感じです.

LEDはPORTDのいずれかに繋いでおいてください.

では続きでソースです.
ではソースです.

# define F_CPU 80000000UL
#include <avr/io.h>

int main(void){

DDRD = 255 ;
PORTD = 0 ;
DDRB = 0b11111110 ;
PORTB = 0b00000001 ;

char PB_SW ;

while(1){
PB_SW = (~PINB & 1) ;

switch (PB_SW){
case 1 :
PORTD = 255 ;
break ;
default:
PORTD = 0 ;
break ;
}
}
return 0 ;
}

では新しく出てきたものを解説です.

>PORTB = 0b00000001 ;
前回と同じですが入力の場合の1は内蔵プルアップ抵抗を有効にするということです.

>PB_SW = (~PINB & 1) ;
PB_SWという変数にPINB(PORTBの入力)と1をANDするマスク処理をしたものを代入する文です.

また,今回入力の処理にswitch+case文を用いていますがbitisclear+if文でもOKだと思います.

つまりこのプログラムではPB0にlowが入力されるとPORTDにhighを出力します.

では書き込んでためして見てください.

ではこの辺で.

See you next time .

・・・インデントが全部消えちゃうんですね.
ちなみにソースを書きながら記事も書いています.
スポンサーサイト



コメントの投稿

非公開コメント

プロフィール

ryou

Author:ryou
それなりに多趣味な学生です
skype : ryoucrown
twitter : @d12325
その他各種SNSもやっているようです

カテゴリ
最新記事
カウンター
twitter上のryou.
メールフォーム

名前:
メール:
件名:
本文:

リンク
検索フォーム
QRコード
QR