自作イグナイタ その7

先日よりプログラムの説明となり、かなりマニアックな内容となっております。
 
興味のない方は頭が痛くなるような内容なのでスルーして下さいね(^^)
 
前回は初期設定を済ませたので、各部の制御を行います。
 
まずは、オープニングデモとしてタコメーターをMAX値で表示させることから始まりです。
 
前回同様に太文字がプログラムソースです。
 
 
 
;***********************
;オープニングデモ;
;***********************

 BTFSC  OPNF,0  
 GOTO  LOW700  ;1だったらスキップ;
 BSF  OPNF,0
 MOVLW  D'3'  ;オープニングデモ10000rpm 3秒間;
 MOVWF  OPN

ウォッチドッグやエンストなどでオープニングデモが繰り返さないようにフラグを立て監視。
 
 
OPENING
 MOVLW  D'166'  ;;
 MOVWF  OPN2
OPENING2
 BSF  GPIO,5
 CALL  T03mS  ;1ms待つ;
 CALL  T03mS  ;2ms待つ;
 CALL  T03mS  ;3ms待つ;
 BCF  PIR1,3 
 BCF  CMCON0,3
 BTFSC  PIR1,3 
 GOTO  LOW50
 BCF  PIR1,3 
 BSF  CMCON0,3
 BTFSC  PIR1,3 
 GOTO  LOW500

 BCF  GPIO,5
 CALL  T03mS  ;1ms待つ;
 CALL  T03mS  ;2ms待つ;
 CALL  T03mS  ;3ms待つ;
 CLRWDT

 BCF  PIR1,3 
 BCF  CMCON0,3
 BTFSC  PIR1,3 
 GOTO  LOW50
 BCF  PIR1,3 
 BSF  CMCON0,3
 BTFSC  PIR1,3 
 GOTO  LOW500

タコメーターへ6msサイクルの信号(10000rpm)を出力しながら、ピックアップ信号を監視。
もしピックアップ信号が入力されたら、オープニングデモをキャンセルしてエンジン始動制御へ飛ぶ。
 
 
 
 

 BTFSC  PIR1,3 
 GOTO  LOW1
 DECFSZ  OPN2
 GOTO  OPENING2
 DECFSZ  OPN
 GOTO  OPENING
 BCF  GPIO,5

オープニングデモを3秒間保持するまで繰り返し。
 
 
 
 
LOW700
 BCF  PIR1,3 
 BCF  CMCON0,3 ;GP1選択;
 BTFSC  PIR1,3 
 GOTO  LOW50
 BCF  PIR1,3 
 BSF  CMCON0,3 ;GP0選択;
 BTFSC  PIR1,3 
 GOTO  LOW500
 GOTO  LOW700
 
オープニングデモ完了後のピックアップ信号入力待ち。
 
 
続く(^^)