SVX日記
2004-10-21(Thu) SVX……オマエもか!!
今日はカミさんに職場まで迎えにきてもらう。待ち合わせの場所に向かうと、特徴的なSVXのテールが待っている。うぅむ……うぅむッ!! カコイイッ!! 再確認しつつ乗り込むと、なぜかカミさんが浮かない顔……なに!? 壊れた!?
運転を代わってもらい、走り出すと、いきなり加速が不自然。鈍すぎる。50km/hほど出すと、ギアがバタバタを変わるような感触。信号で止まると、エンストギリギリのツラそうなアイドリング……。どうもギアの選択がムチャクチャになっているような症状だ。ムチャクチャといっても、ある一定の法則には従っているような、ヘンな挙動。
カミさんによると、エンジンをかけるときから元気がなかったという。確かにバッテリーは弱っていたが、それがこの症状につながるかなぁ。オルタネータが死んでいて、全ての電力をバッテリーが補っていたとすると電圧不足でムチャクチャな挙動になることもあるかもしれんが……。なんにせよ、トランスミッション自体ではなさそうな感じなので、そうオオゴトにはならないとは思うが、予断は許さない。今週末はスバルに初入院だなぁ。困ったヤツよ。
そんなこんなで、ひさびさに本来の「SVX日記」が書けたと思ったのに、それがこんな報告とはまったくツイてない……と思ったら、先日直したハズのマウスのホイールが再び死んでいるではないか。ぐももも。どうもロータリーエンコーダ自身の寿命っぽい感じだ。予備の同型のマウスを使ってみるとホイールのコリコリした感触に張りがあり、その違いは歴然なのだ。やっぱりゴミマウスからの移植しかないのかなぁ。このサイトは「SVX日記」とかいいながら、すっかり「電子工作日記」だよなぁ、とか思っていたが、最近は「修理日記」がピッタリとハマリつつある。カンベンしてくれよぉ……。
それはそうと、今度こそ「SHAKENS YOU UP!」のファームのプログラミングに取り掛かる。修理する以上に創造すりゃ「修理日記」の名は冠さずに済むだろう。とりあえず、正確で使い勝手のよい時間待ちルーチンを作る。
; ################################################################################
; #
; # 時間待ち(小)
; #
; # LD A, 6 ; 6を指定すると、
; # CALL WAITnx4p8 ; 2行で 6 x 4 + 8 = 1/256sec 消費
; #
WAITnx4p8 ; WAITnx4p8
movwf waitCntS ; LD (waitCntS), A
WAITnx4p81 nop ; WAITnx4p81 NOP
decfsz waitCntS
goto WAITnx4p81 ; DJNZ (waitCntS), WAITnx4p81
nop ; NOP
nop ; NOP
nop ; NOP
return ; RET
;
; ################################################################################
; #
; # 時間待ち(大)
; #
; # LD A, 8 ; 1秒の場合、8を指定すると、
; # CALL WAITnx0125 ; 2行で 8 x 1/8sec - 10clock 消費する
; #
WAITnx0125 ; WAITnx0125
movwf waitCntL ; LD (waitCntL), A
movlw 249 ; LD A, 249
goto WAITnx01252 ; JP WAITnx01252
WAITnx01251 nop ; WAITnx01251 NOP
movlw 253 ; LD A, 253 ; 253 x 4 + 8 = 1/8sec - 4clock
WAITnx01252 call WAITnx4p8 ; WAITnx01252 CALL WAITnx4p8 ; の時間待ち
decfsz waitCntL
goto WAITnx01251 ; DJNZ (waitCntL), WAITnx01251
return ; RET
;