espyの日記: robo:: ウータン第七の修練(ウータン・クラン) / PIC programming 2
よよ嫁!ホレホレ嫁! フマキラー付いてるよ...
* * *
また徹夜になっちゃったな。この半年でかつて無い進捗 (たりめーだ、
むしろ遅すぎだ...)ではあるが、牛歩な感は否めない。
でも進んでいる。
PICの条件分岐、フラグの挙動、引き算の書き方で、朝方に何時間も
悩んでしまった。
もうI2Cはあきらめて、CPU→PIC×2個は、Parallel Slave Port接続
で、結線だけはしてある。中身はこれから...
小脳PIC用として、こんな感じのプログラムを作る予定:
・約16~20msでタイマ(カウンタ)をぐるぐる回しておく。
・タイマが一周の境目に達したかを時々確認に行く。(サブルーチン)
・一周するまでの間はParallel Slaveを読んでメインCPUからの指令が
届いていないかチェックする。届いていたらデータを読み、しかるべき
所へ格納するなどする。
A/Dを読むコードなどもここに入れることが出来そうである。
一方、サブルーチンの中は、タイマが一周していたらサーボ12ch分の
出力を一斉に"High"にし、各chの変数を数μsステップでデクリメント、
zeroになったchは出力を"Low"に落とす。全部落としたらreturn。
そう、割り込みを使っていない。
Highパルスが出ている間は、ソフトループなのでメインCPUはPICに
コマンドが書き込めないことになるが、"ちょっと待ってねフラグ"と
して信号を1本用意する。(最悪約2.4msくらい待たされる)
まぁとりあえず、約16ms周期については、テスト用の基板(こんなやつだ)で
シンクロで波形を見て、この方式で行けそうだという検証は得られたし、
1ch分のパルスを出して実際にサーボも回せた。(自作プログラムで
サーボを回してみたのはこれが初めてだったりする... ^_^;)
とりあえず3時間、(または4.5時間(または6時間?)) 寝る。
起きたら続き。
# 主題歌分科会もできてめでたい。:-)
かなり進んだね (スコア:1)
間に合うように頑張って
(自分のことを棚にあげてどうする)
形になりつつありますね (スコア:1)
PIC での制御って大変そうだなぁと思いながら読んでます:)。でももうちょっとなのかな。
形になりつつあるので気を楽に持って頑張ってください。途方にくれない事が多分重要だと思います(w。