Repo

kjana00@gmail.com

older <-

2011-11-26 02:00:48

今朝は晴れ。朝ごはんはパンとサラダとソーセージ。ちょっとあったかめか。天気はいいし、風も無いし、日なたなら割とぽかぽか陽気、に、なるでしょう。多分。

今日搬送されていくデモ機のプログラムはさすがにもう書き換えないよね、と微妙にびくつきつつ、I2C な I/O エキスパンダ経由で繋がってる LED 制御のコードをどうしようかというのの続き。まあ下回りはそのままもらうかなと方針が固まったところで、あんまり気に入らないタイマーのところをこっちで持ってるのと置き換えようと試みる。持ってるのに書き換えられてて、しかもしれが今一つだからそのまま持って来たくないな、と。

今一つって言っても書き方の趣味なところの方が大きいんだけど、複数のタイマーが使われることを考えてないコードだもんだから困ることもありそうだっていうのもそう思う理由の一部にある。周期タスクのスケジューリング用のタイマーにも使いたいっていうか、使ってるし。ということで、静的に確保した構造体で各タイマーの状態を持つことにしましょうっていう形に。……今、持ってるのがその形で、周期タスク用に自動でカウンタをリセットしてるところを初期値 0 にしとけばいいっていうだけだったんだけどな。初期値 0 のタイマーは、現在地を設定する関数を呼び出すと 1 shot のタイマーとして動くわけで。ということでそういうのを追加。main() と一緒のファイルで static にしてたのを独立させて。

で、I2C のドライバでちょっとだけ使ってるタイマーをこれで置き換える。これで下回りの取り込みはおしまい。LED での表示なんてどうせそんなにタイミングが厳密なわけでもないっていうことで、非割り込み動作の周期タスクにしておく方針だから。これ、変に割り込みの方に持って行くと余計に面倒臭いしね……

で、LED 操作部分について考える。見直してみるに、このコード取り込むの嫌という気分が強くなったんで書き起すことに。難しいことする必要無いし、そうするとエッセンスは簡単だったから。簡単なはずのものを変に難しく書いてあるように読めるのが気に喰わない主な理由。多分、他からの移植で目に見えるいらないところを落して、ってやっていった結果。ファンとか書いてあるぐらいだし。前の状態覚えといて、変化があったら送信ってやってるのは、単に時間見ないで全力でループ回す中で呼ぶようになってるからでしょう。周期タスク実現出来るから、10ms に一回状態判定して出力するよ、だとそんなロジックもいらない。アプリケーション用のコードをここに入れるのは変だよねと他に切り出したりもしつつ。レベルインジケータ的なところをべたに個別にオン・オフしてるのも、せめてループ使える形にしとこうよといじって。……ん、こんなものかな。

で、うっかり動作の最中にプログラム書き換えて自分でびっくりしたりしつつ、とりあえず書くだけ書いた、ビルドも出来てるというぐらいでおしまい。何せこの辺りは今の評価ボードだと改造が必要なところだもんだから手元で確認出来ない。……やればある程度は出来るか。I2C バスの出力をオシロスコープで眺めるぐらいなら。でもものすごく面倒臭い上に、実際の LED 出力見えないんだよね。

そんな感じで終わっておいて早めに帰る。ちょっとのんびりしておいて、晩ごはんは五目寿司ととろろ昆布のつゆ。ちょっと具が多かったかも。でもまあ、それぐらい食べないと栄養のバランスも何も無いかもっていう話はあるか。部屋で食べてる野菜の種類が少ないもんな……

後は WWW 見たりゲームしたり、何故だか前とは別の本棚を整理し始めたり、そこで引っ張り出されたまんがを読んだり。それないに片付いたか。でも、全然片付いてないどころか段ボールから出してさえいないのがまだ沢山あるよね。うーん、どうしようもない。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12