2011年7月3日作成 2011年7月9日更新
どのシリンダーに点火・噴射したら良いかを判断するために、クランクアングルセンサーの出力信号から、現在のピストン位置を判断します。
クランクアングルセンサーの出力信号を見ればすぐにわかりますね。
ということがわかります。3番と2番のどちらが上死点なのかを判断することは出来ませんが、クランクがさらに180度回れば1番か4番の上死点になるのでそこで決定できます。
rotetion_speed.c
// Ne立ち上がり割り込み
CYLINDERS++;
if(CYLINDERS>4) CYLINDERS=1;
if(CRANK_G==1) CYLINDERS=3; // 1番上死点から数えて3番目(4番上死点)の意味
crank.c
// Ne立ち下がり割り込み
if(CRANK_G==1) CYLINDERS=1; // 1番シリンダー上死点
拍子抜けするくらい簡単ですね。
('A`)