kuroの覚え書き

96の個人的覚え書き

タコなプログラム



「電子工作のためのPIC16F活用ガイドブック」とくびっぴきでプログラムを書いてみた。

といってもまだサブルーチンだけ。


;タコメータ用計測実行サブルーチン
;ゲートタイムは0.6秒
;PORTAのRA4がゲート制御用ピン
;
;使用するFLAGは
;OVERFLW
;TEMP
;LPCNT1
;LPCNT2
;BYTE0
;BYTE1
;BYTE2
;
;
;初期設定
BSF STATUS,RP0
MOVLW 0E8H ;プリスケーラなし
MOVWF OPTION_REG
BCF STATUS,RP0
CLRF TMR0
;
;カウンタルーチン
MEA
;まずはGATEの初期化
CLRF TMRO ;COUNTER RESET
BCF PORTA,4 ;GATE CLOSE
;計測開始
BSF PORTA,4 ;GATE OPEN
CLRF OVERFLW ;CLEAR OVERFLOW FLAG
MOVLW 03H
MOVWF TEMP ;4STEP
LP1 CALL MEALOOP ;(249998STEP)
DECFSZ TEMP,F
GOTO LP1 ;250001*3-1STEP
CALL MEALOOP ;249998STEP
CALL MEALOOP ;249998STEP
CALL MEALOOP ;249998STEP
BCF PORTA,4 ;GATE CLOSE (250000*6)
RETURN

;計測実行ループ
MEALOOP MOVLW 08DH
MOVWF LPCNT1
;
MEALP1 MOVLW 088H
MOVWF LPCNT2
;
MEALP2 BTFSS INTCON,T0IF ;13 STEP LOOP
GOTO DUMMY1
BCF INTCON,T0IF ;RESET T0IF FLAG
MOVLW 1
GOTO NEXT
DUMMY1 NOP
NOP
MOVLW 0
NEXT ADDWF BYTE1,F ;
RLF BYTE1,W
ANDLW 1
ADDWF BYTE2,F
DECFSZ LPCNT2,F
GOTO MEALP2
;
NOP
MEALP3 DECFSZ LPCNT1,F
GOTO MEALP1
RETURN

ちょっと進展したかな?