pomiar_tx
;mierzy czas ładowania kondensatora przez niezwarte rezystory
; ustaw |
budź jako wyjście i wpisz 1 | |
bsf |
status, rpO |
;bankl |
bcf |
budź |
;ustaw gpO jako wyjście |
bcf |
status, rpO |
;bankO |
bsf |
budź |
;ustaw 1 na gpO |
clrf |
tmrlh |
;zeruj tmrlh |
clrf |
tmrll |
;zeruj tmrll |
cali |
rozładuj |
;zalacz rozładowanie kondensatota |
cali |
del_ntb |
;poczekaj na rozładowanie |
cali |
ładuj |
;zalacz ładowanie kondensatora |
bsf |
tlcon, tmrlon |
;zalacz tmrl |
btfss cmcon, cout ;sprawdz wyjście komparatora
goto $-1 jczekaj na 1 na wyjściu komparatora
bcf tlcon, tmrlon ;wyiacz tmrl
;ustaw budź jako wejście
bsf status, rpO ;bankl
bsf budź ;ustaw gpO jako wejście
bcf status, rpO ;bankO
; za parnie taj pomiar do wyswiedenia movf tmrll, w
movwflbyte ;wpisz tmrll do lbyte
movf tmrlh, w
movwfhbyte ;wpisz tmrl h do hbyte
jobliczenie dzielnika xklaw
bcf status, c
rrf div, w
addwf tmrll, f
; zeruj c ;div/2 -> w
;dodaj do tmrll ze względu na zaokrąglenie
clrf xklaw ;zeruj xklaw
movf div, w ;wpisz div do w
xk_i ;obliczenie xklaw (xklaw = tmrll/div)
incf xklaw, f inkrementuj xklaw
subwf tmrll, f jodejmij nklaw