javlja zakasnjenje od 1s.
Molim za odgovor jer meni nista nije jasno, treba mi formula kako se racunaju mikrosekunde da bi dobio 1s
Code:
_1s ; Cekanje 1 sekunda
bsf STATUS,RP0 ; Bira se BANK1, radi pristupa registrima unutar ove banke
movlw b'00000111' ; Ucitaj konstantu
movwf OPTION_REG ; Preskaler dodeljen tajmeru, faktor deljenja je '256'
bcf STATUS,RP0 ; Bira se BANK0, radi pristupa registrima unutar ove banke
clrf TMR0 ; Obrisi vrednost u tajmeru
clrf INTCON ; Obrisi poslednju setovanu vrednost 'T0IF'
movlw h'0F' ; Ucitaj '15' decimalno
movwf BR0 ; Stavi u brojac BR0
L1 btfss INTCON,T0IF ; Da li je tajmer prekoracio vrednost d'65536'?
goto L1 ; Nije, vrati se na ciklus
clrf INTCON ; Obrisi poslednju setovanu
decfsz BR0,f ; Jeste, umanji BR0 za 1, da li je BR0 '0'
goto L1 ; Nije, vrati se na L1
bsf STATUS,RP0 ; Bira se BANK1, radi pristupa registrima unutar ove banke
clrf OPTION_REG ; Preskaler dodeljen tajmeru, faktor deljenja je '2'
bcf STATUS,RP0 ; Bira se BANK0, radi pristupa registrima unutar ove banke
clrf TMR0 ; Obrisi vrednost u tajmeru
clrf INTCON ; Obrisi poslednju setovanu vrednost 'T0IF'
movlw h'21' ; Ucitaj '33' decimalno
movwf BR0 ; Stavi u brojac BR0
L2 btfss INTCON,T0IF ; Da li je tajmer prekoracio vrednost d'512'?
goto L2 ; Nije, vrati se na ciklus
clrf INTCON ; Obrisi poslednju setovanu
decfsz BR0,f ; Jeste, umanji BR0 za 1, da li je BR0 '0'
goto L2 ; Nije, vrati se na L2
return
_1s ; Cekanje 1 sekunda
bsf STATUS,RP0 ; Bira se BANK1, radi pristupa registrima unutar ove banke
movlw b'00000111' ; Ucitaj konstantu
movwf OPTION_REG ; Preskaler dodeljen tajmeru, faktor deljenja je '256'
bcf STATUS,RP0 ; Bira se BANK0, radi pristupa registrima unutar ove banke
clrf TMR0 ; Obrisi vrednost u tajmeru
clrf INTCON ; Obrisi poslednju setovanu vrednost 'T0IF'
movlw h'0F' ; Ucitaj '15' decimalno
movwf BR0 ; Stavi u brojac BR0
L1 btfss INTCON,T0IF ; Da li je tajmer prekoracio vrednost d'65536'?
goto L1 ; Nije, vrati se na ciklus
clrf INTCON ; Obrisi poslednju setovanu
decfsz BR0,f ; Jeste, umanji BR0 za 1, da li je BR0 '0'
goto L1 ; Nije, vrati se na L1
bsf STATUS,RP0 ; Bira se BANK1, radi pristupa registrima unutar ove banke
clrf OPTION_REG ; Preskaler dodeljen tajmeru, faktor deljenja je '2'
bcf STATUS,RP0 ; Bira se BANK0, radi pristupa registrima unutar ove banke
clrf TMR0 ; Obrisi vrednost u tajmeru
clrf INTCON ; Obrisi poslednju setovanu vrednost 'T0IF'
movlw h'21' ; Ucitaj '33' decimalno
movwf BR0 ; Stavi u brojac BR0
L2 btfss INTCON,T0IF ; Da li je tajmer prekoracio vrednost d'512'?
goto L2 ; Nije, vrati se na ciklus
clrf INTCON ; Obrisi poslednju setovanu
decfsz BR0,f ; Jeste, umanji BR0 za 1, da li je BR0 '0'
goto L2 ; Nije, vrati se na L2
return
i jos nesto zasto je movlw b'00000111' a ne b'10000111'