;-----------------------------------------------------
Timer0ISR:
STA zACC
ldi rzIRQ ,0x00
;-------------------------------------------------
lda nUARTFlag
baz NormalTimer0
ba3 ?txdStop
ba2 ?txdTB8
ba1 ?txdData
;; ba0 ?txdStart
?txdStart:;--------------------------------------------------------------- step 1
ldi nUARTFlag ,0010b //switch to step 2
jmp ?busLow
?txdData:;---------------------------------------------------------------- step 2
sbim zUartBitLen ,0x01
bnz $+2
ldi nUARTFlag ,0100b //switch to step 3
lda nUARTDataL
sta zIntTmp
shr
sta nUARTDataL
lda nUARTDataH
shr
sta nUARTDataH
bnc $+2
orim nUARTDataL ,1000b
lda zIntTmp
ba0 ?busHigh
jmp ?busLow
?txdTB8:;----------------------------------------------------------------- step 3
ldi nUARTFlag ,1000b //switch to step 4
jmp ?busLow
?txdStop:;---------------------------------------------------------------- step 4
ldi nUARTFlag ,0000b //switch to step 0
?busHigh:;-----------------------------------------------------------------------
orim rzPB ,0001b
jmp NormalTimer0
?busLow:;------------------------------------------------------------------------
andim rzPB ,1110b
;---------------------------------------------------
NormalTimer0:
adim zInt_C ,01
sbi zInt_C ,04
bnc Exit_Timer0
ldi zInt_C ,00
LDI rzWDT ,0x0B
adim zDelayL ,0x01 ;;channel 1 main loop time counter
eor zDelayL
adcm zDelayH
adim zLEDTime ,01 ;64ms
bnc Exit_Timer0
ldi nDispVolt ,06 ;;for test!
lda nDispVolt
sta nUARTDataL
sta nUARTDataH
eorim nUARTDataH ,0x0f
ldi zUartBitLen ,0x08
ldi nUARTFlag ,01
orim rzPB ,0001b ;;busy signal!
Exit_Timer0:
LDI rzIE ,0x04 ;timer0 ISR Enable!
LDA zACC
rtni
|