実はAVRを使おうと少しずつがんばってます
自転車につけるおもちゃを作ろうと思ってます
自転車につけるおもちゃを作ろうと思ってます
PICではなくAVRにした理由は、AVRはライタの製作難易度が低いと思ったからです
+ | 過去の話 |
C言語での開発環境がととのいました
開発環境:AVRstudio コンパイラ:WinAVR ライタ:LPTポートからのISP書き込み プログラマ:avrsp
という感じで使ってます
という感じで使ってます
なんだか書き込み早いしCOMポートが固まるなんてことがないのでSHより使いやすいんじゃないかという気さえしますw
なんにしてもパラレルポートついててよかったー
いつだかワタリが「このパソコンパラレルポートついてていいなー」と言っていたのはこのことを見越してのことだったのあk
いつだかワタリが「このパソコンパラレルポートついてていいなー」と言っていたのはこのことを見越してのことだったのあk
ライタの回路図(18から25ピンまではつながっています)
~経過~
'10.12.15 AVRなどを秋月で買った
'10.12.25 ブレッドボード上でAVRまわりの回路を組んだ 書き込もうと思ったらパソコンがサークルの部屋にあることを思い出す あと電源の取り方に困る クリスマスじゃんなにやってんだ・・・
'10.12.26 サークルのロッカーからパソコンをゲットバック サークルのパソコンじゃないんだからねッ!!
'10.12.27 電源はACアダプタからとって三端子レギュレータで5ボルトにすることを思いつく なかなかうまくいかないも
'10.12.28 根性で日付が変わってもあきらめないでやってたらできた LEDを点滅させられたときは思わずガッツポーズ
あといちいちブレッドボード上でやるのは非常に面倒なので書き込み専用回路を組みました
あといちいちブレッドボード上でやるのは非常に面倒なので書き込み専用回路を組みました
'10.12.29 書き込みのときはAVRに電源入れなくてもいいことが判明 マジかよ・・・ あとで書き込み回路組みなおします
'11. 3. 5 新年明けました ①やはり書き込みのときも電源必要 ②やっぱりC言語で開発したい そのうちどうにかしよう春休み中にどうにかしないと
AVRのピン3本でLED8個の点灯制御できました まあこんなようなことで遊ぼうと思ってます
バースライド動画
AVRのピン3本でLED8個の点灯制御できました まあこんなようなことで遊ぼうと思ってます
バースライド動画
'11. 3.10 前回考えたことについてここ数日間勉強し続け、ようやくC環境ができた しかし二日酔いで頭が痛い
LED点滅したよ!
LED点滅したよ!

'11. 3.13 地震から2日たちましたが私は元気です L棟3階揺れで崩れるかと思った
地震のときノートPCをロッカーに入れて急いで家に帰ってしまったのでAVRの開発環境がなくて困ってます 今日もL棟行ってみたけどあいかわらず立ち入り禁止だし・・・
とりあえず割込みとかタイマの勉強をしてます
電気・水道・ガスにありがとうを言うとともに被災者の人たちの一刻も早い元の生活への復帰を願っています 明日から輪番停電だぜぇ
地震のときノートPCをロッカーに入れて急いで家に帰ってしまったのでAVRの開発環境がなくて困ってます 今日もL棟行ってみたけどあいかわらず立ち入り禁止だし・・・
とりあえず割込みとかタイマの勉強をしてます
電気・水道・ガスにありがとうを言うとともに被災者の人たちの一刻も早い元の生活への復帰を願っています 明日から輪番停電だぜぇ
'11. 3.15 秋葉原に買出しに行ってきました 計画停電の影響でTXが10時から20時まで動かないということで10時から20時まで秋葉原を歩き回ってましたよ
20時ごろに帰るときTX待ちの列が200mほどできていたのが恐ろしくて南流山まではJR、そこからTXに乗り換えてつくばまで帰ってきましたがずっと立ちっぱでした。。
ほぼ一日立ち続けて疲れた・・・
20時ごろに帰るときTX待ちの列が200mほどできていたのが恐ろしくて南流山まではJR、そこからTXに乗り換えてつくばまで帰ってきましたがずっと立ちっぱでした。。
ほぼ一日立ち続けて疲れた・・・
'11. 3.16 こんなんできましたー 実態はまだ秘密ですろぼかふぇをお楽しみに かなり完成が近づいたように思います ・・・まあプログラムがうまくいくか次第なんですけどw
'11. 3.17 AVRで割込みができた! つくばロボコンとかNHKやってる頃は1ミリも知らなかった割込みだけどこれは便利 誰かもっと早く教えておいてくれよ....
あとはAVRでPWMさえ出せるようになったら俺はSHよりもAVRの方が使いこなせていることになる(ぇ
おもちゃの進展的な話では割込みができるようになったのであとはハードとソフトの整合性の問題だけ 計算はもう済んでるんだけど・・・?
あとはAVRでPWMさえ出せるようになったら俺はSHよりもAVRの方が使いこなせていることになる(ぇ
おもちゃの進展的な話では割込みができるようになったのであとはハードとソフトの整合性の問題だけ 計算はもう済んでるんだけど・・・?
'11. 3.25 こんなんできましたー これは何かってーとAVRのピン3本で40個のLEDを制御する回路です ひとつも問題なくLEDピカピカしてくれると信じている 配線めんどかったー
8割方の配線が終わったときにもっときれいに配線する方法思いついちゃってあちゃーって感じでした・・・ 次からは配線も考えてからにしようと思います

8割方の配線が終わったときにもっときれいに配線する方法思いついちゃってあちゃーって感じでした・・・ 次からは配線も考えてからにしようと思います
'11. 3.26 正常に動作しました。。ここに至るまでLEDつかねえ!とかLEDつかねえ!とか紆余曲折あったわけですが なんかLED光っただけで満足しちゃいそうですw これからが本当の戦い・・・か・・・
スライド動画
あとはスイッチのテストだけしたら果てしないデバッグへ向かいます
スライド動画
あとはスイッチのテストだけしたら果てしないデバッグへ向かいます
'11. 3.28 スイッチも「チャタリング」ってのに少し手間取ったもなんとかクリア
データも取ったしあとは実際に走らせてみるだけ 完成間近!
データも取ったしあとは実際に走らせてみるだけ 完成間近!
'11. 4. 5 AVRでPWM出せました! ・・・いや本当はPWMなんてあまりやる気じゃなかったんだけど代表に新歓用品を作れと言わr
これで名実ともにAVRをマイコンの中で一番に使いこなせていることになってしまった つくばロボコンもAVR使おうかね
これで名実ともにAVRをマイコンの中で一番に使いこなせていることになってしまった つくばロボコンもAVR使おうかね
'11. 4. 7 初試験運転 いきなりうまくいくとは思っていなかったにしてもかなりできていない 完成は遠いようです
とりあえずマイコンのクロックを速くしないと話にならないことが今日のテスト運転でわかりました マイクロマウスとの兼ね合いもあるからそろそろできてくれないとジリ貧なんだけどナー
とりあえずマイコンのクロックを速くしないと話にならないことが今日のテスト運転でわかりました マイクロマウスとの兼ね合いもあるからそろそろできてくれないとジリ貧なんだけどナー
'11. 4.10 二回目の試運転 とりあえずの成功を見ました
あとはハードをちょちょいっといじってやるだけなんでAVRおもちゃは完成です!! どんな感じかはカフェをお楽しみに!!
あとはハードをちょちょいっといじってやるだけなんでAVRおもちゃは完成です!! どんな感じかはカフェをお楽しみに!!
'11. 5.21 AVRの書きこみ器作りました パソコンから電源供給できるのでだいぶ面倒がなくなりました
- インクルードするヘッダ
<avr/io.h> 絶対必要
<avr/interrupt.h> 割り込み使う場合
#define
F_CPU ***
<util/delay.h> delay(wait相当)関数を使う場合、上のdefineと一緒に書く
- IOを使いたい場合
DDR(n)・PORT(n)・PIN(n)
DDR(n)・・・ポート(n)のIn/Outを切り替え
PORT(n)・・・ポート(n)がOutの状態で、Low/Highの切り替え Inの状態の場合はデータシート見るよろし
PIN(n)・・・ポート(n)がInの状態で、ピンにかかっている電圧のLow/Highがこのレジスタを読めばわかる
DDR(n)・・・ポート(n)のIn/Outを切り替え
PORT(n)・・・ポート(n)がOutの状態で、Low/Highの切り替え Inの状態の場合はデータシート見るよろし
PIN(n)・・・ポート(n)がInの状態で、ピンにかかっている電圧のLow/Highがこのレジスタを読めばわかる
- PWMを使いたい場合
TCCR(n)A・TCCR(n)B・OCR(n)Aなど
TCCR(n)A・・・いろいろ設定する
TCCR(n)B・・・いろいろ設定する
OCR(n)A・・・デューティとか
TCCR(n)A・・・いろいろ設定する
TCCR(n)B・・・いろいろ設定する
OCR(n)A・・・デューティとか
- AD変換を使いたいとき
ADMUX・ADCSRA・ADCSRBとか
ADMUX・・・いろいろ設定する
ADCSRA・・・いろいろ設定する
AD変換完了割り込みとか使うといい
ADMUX・・・いろいろ設定する
ADCSRA・・・いろいろ設定する
AD変換完了割り込みとか使うといい
- 割り込み使うとき
sei()関数とかcli()関数とか使ってSREGの全体割り込み許可を操作する
使いたい割り込みの割り込み許可をする
使いたい割り込みのベクタを調べて(例 ADC_vect)
ISR(ADC_vect){}
という関数の中に割り込みで行いたい処理を書いて割り込み条件が満たされると自動で実行される
使いたい割り込みの割り込み許可をする
使いたい割り込みのベクタを調べて(例 ADC_vect)
ISR(ADC_vect){}
という関数の中に割り込みで行いたい処理を書いて割り込み条件が満たされると自動で実行される