;Listing 7.16 Procedura oczekiwania na bit startu przez czas ok. 65 ms
bcf intcon, tOie ;zeruj tOie
bcf time_out ;zeruj flagę błędu
;konfiguracja timera 0 i preskalera
bsf status, rpO
movlw b'00001111’ movwf option_reg
test m
bcf |
status, rpO |
;bank 0 |
clrf |
tmrO |
; zeruj tmrO |
bcf |
intcon, tOif |
;zemj tOif |
btfsc |
intcon, tOif ;sprawdz czas | |
goto |
time_err |
;przekroczony czas 65 ms (dla 4 MHz) |
btfsc |
in |
jsprawdz linie in |
goto |
test_in |
;czekaj na bit startu |
;jest bit startu, kontynuacja procedury rx_in
;bank 1
jpreskaler 256, psa=l, gie=0
rx_end
return
time_err
bsf
return
; koniec procedury rx_in
;przekroczony czas 65 ms time_out ;ustaw flagę bledu