avr-gcc で工作(その2)
avr-gcc で工作(その2)
作業しました。
WinAVRの新版を入れて、とりあえず先日の回路でAVRにプログラムを書いて、焼いてみました。
書き込み回路は id:Chuck:20040812#p1 で挙げた AVR910を探し出して*1きました*2。
/* PORTA LED blinking */ #includevoid nop(int n) { int i; for (i = 0; i < n*256; i++) ; } int main(void) { outp(0xff, DDRA); for (;;) { outp(0xff, PORTA); nop(20); outp(0x00, PORTA); nop(20); } }
make一発! ということで、動かしてみたら、
動かない… こんなに単純なプログラムなのに _| ̄|○
気を取り直して見直すと、PORTA は A/Dコンバータと共用です。データシートをよく読むと、PORTA I/O と A/Dコンバータの電源は だとあります。考えてみれば当たり前です。アナログに繋ぐかもしれないポートを一度 で受けるということも無いわけです。
で、回路を修正したものがこちら。
本当はパスコン入れたほうがいいのでしょう、ということであとで入れます。A/Dコンバータを使わないのでは開放でもいいのだろうか、いや悩んだらどこかに繋いでおけということで、あとでに繋いでおきます*3。
ということで、ようやくプログラミング環境が整い、作ったプログラムでLEDを点滅させることができました。
- メモ
- クロック8MHz で、nop(20) は 最適化なし出来高払いで、71 msec