Repo

kjana00@gmail.com

older <-

2011-06-22 01:39:33

今朝はくもり。朝ごはんはパンとサラダとソーセージ。今日から雨な上に気温も急上昇だってさ、なんていう話を聞いてたけど、どうやらそんな感じでもなさそう。まあ、気温は上がりそうな感じだけど。日が差してきたし……

状態遷移っていうか、動作モードの切り替えと出力制限状態との絡みて問題があるなっていうのに気付いてたんで、とりあえずそこを直してしまおうと思いました。で、適当にいじってみたら動かなくなったりして。出力制限状態中に動作を切り替えると一旦選んだ動作モードに移行してから出力制限状態に戻るっていうことになるんで、いっそ動作切り替えは出力制限状態を経由することにしようと思ったんだけど、出力制限状態から出て来ないのね。

デバッガ使えないと面倒でしょうがないと思いつつ、シリアルだの I/O ポートだのにデバッグ出力を出して考える。何か、デバウンス処理の状態がおかしいなっていうのから改めて悩んでみると、出力制限状態になる時にデバウンス処理の状態もいじってやらないと変なことになるなという結論に。本当にデバウンスした結果出力制限に落ちる場合と同じようにしてやらないとまずかったというお話。

もうちょっと見たらお話しに行きましょうかと思ってたところで、ふと思い付いて前に動いてた機能が壊れてないことを確かめようとしてみた。ら、壊れてた……その出力制限の話。ソフトウェアのみで実現してる方の動作が変。無駄に遷移と復帰を繰り返してる。ソフトウェアだけだとちゃんと制限出来ないとはいえ、緊急停止なんか実現するとしたらこの状態を使うでしょうっていうところだからこのままじゃまずい。うーん。

しばらく調べてたところ、出力を制限すると、その出力を計測する回路の電源まで絞られちゃって回路中の IC を定格外で動作させることになるのを思い出す。で、最近やった変更の中で、出力制限で絞る最低値を小さくしたのも思い出す。戻したら、直った。ああ、びっくりした。ここの回路は新しい評価ボードでは直すっていう話だった気がするし、とりあえずは小さい値に戻して、と。

それで調べてる間に割り込みとの関係で今のままだと出力制限状態と他の状態の関係がよろしくない感じなのがわかってしまう。出力制限は割り込みハンドラ中で動かすけど、他の状態遷移は外でやってたから。割り込みの中に放り込むのもありはありだけど、それだとだいぶ気持ち悪い構成になっちゃうなということでしばらく悩んでみる。

結局、出力制限状態は他の状態中の操作を全部オーバーライドしなきゃならないんだよね、ということで状態遷移を二系統に分けることで決着。通常状態と出力制限状態、通常状態の中に初期化してスタートして機能で分かれてっていう諸々の状態。通常状態中の状態遷移っていうかモード切り替えだけは勝手に動くけど、実動作は通常状態に戻るまでしないっていう。微妙に割り込み中で動く関数用の初期化が割り込み外にあったりはするけど、現在動作中のモードの初期化は起こらないし、それ以外のところで割り込み内と割り込み外で初期化がインターリーブしても問題無いから大丈夫。……だよな。……まあとりあえずこれでいいか。

それからもうちょっと様子を見てたら何だか今から打ち合わせっていうのもね、という気分になったんで帰る。晩ごはんは焙った厚揚げととり汁のそば。冷奴のつもりがいつも買ってる豆腐が無いってなると、ね。

後は WWW 見たりゲームしたり。勝てると踏んで打ったダブルのせいで負けると残念な気分。拾ったランダムアーティファクトが残念な性能なのも残念な気分。山の 38 階まで降りてみたけどまだ下り坑道が出るんだな……

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12