mrb arkadaşlar
ben 18f452 de tmr0 intertturp kullanarak 1000 ms bir süre yapmaya çalışıyorum bunu için
tmr0
16 bit
bölme oranı 1:28
ve tmr0H=$67
tmr0L=$69
ayarladım...
buraya kadar sorun yok sorun isiste yaptım similasyonda sadece tmr0L degerin değiştiğni tmr0H degerin değişmediği ve tmr0L degerin FF değerine ulaştığında kesme meydana geldini gördüm..
neden TMR0H değeri değişmiryor.....
ACİL YARDIM
Device = 18F452
XTAL = 20
INTCON.7=1 'TÜM KESMELER AÇMA-KAPAMA
INTCON.6=1 'TÜM KESMELER AÇMA-KAPAMA
T0CON.7=0 'TMR0 KESMESİ AÇMA
T0CON.6=0 'tmr0 16 bit ayarlandı
T0CON.5=0 'tmr0 dahili clock
T0CON.3=1
T0CON.2=1 ' \
T0CON.1=1 ' |-> prescale degeri 1/128 ayarlandı
T0CON.0=0 ' /
Output PORTB.0
Symbol TMR0_START=T0CON.7
Symbol KESME_ON=INTCON.5
Dim puls_say As Byte
Dim puls_bos_say As Byte
On Interrupt GoTo KESME 'kesme oluşursa KESME adlı etikete git.
TMR0H=$67 '1000 ms için tmr0 değeri $6769 -->26473
TMR0L=$69 '
PORTB.0=0
Clear
KESME_ON=1
puls_say=0
puls_bos_say=0
PORTB.0=1
TMR0_START=1
den:
nop
GoTo den
Disable
KESME:
If INTCON.2=1 Then
TMR0H=$67
TMR0L=$69
If puls_say<57 Then
If PORTB.0=0 Then
PORTB.0=1
Else
If PORTB.0=1 Then
PORTB.0=0
EndIf
EndIf
If PORTB.0=1 Then
puls_say=puls_say+1
End If
Else
PORTB.0=0
puls_bos_say=puls_bos_say+1
If puls_bos_say>2 Then
puls_say=0
puls_bos_say=0
EndIf
EndIf
EndIf
CIK:
INTCON.2=0 'TMR0 Kesme bayrağı sıfırlanıyor
Resume
Enable
End
TMR0=26473 tanımlayıp denermisin.
mrb f.t söyledğin yöntemi denedim proton program "variable 'TMR0' not not found (pwm deneme.bas) hatası veriyor dostum..
tmr0 yerine TMR0LH=24673 kullanılması gerekiyor onu denedim aynıs
sadece TMR0L FF kadar sayıyor ve kesme oluşuyor