18F2550 TMR0 kesmesi

Başlatan Cenk_Unur, 17 Temmuz 2012, 13:48:56

Cenk_Unur

Merhaba Arkadaşlar,
18f2550 kullanarak bir zaman devresi yapıyorum TMR0 kesmesi kullanmam gerekiyor.
Şu anda elimde entegre olmadığı için Proteus ile simüle ediyorum. Ancak ne yaptıysam çalıştıramadım.

Sorun kodlardanmı kaynaklanıyor yoksa Proteusdanmı anlayamadım.
Konu hakkında bilgisi olan varmı?

Device = 18F2550 
XTAL 20

ALL_DIGITAL true 
TRISA =0
TRISB =%00000000
TRISC =%111111

'Declare LCD_TYPE 0
'Declare LCD_DTPIN PORTA.3
'Declare LCD_ENPIN PORTA.2
'Declare LCD_RSPIN PORTA.1

Symbol TMR0ON T0CON.7
Symbol T08BIT T0CON.6
Symbol T0CS T0CON.5
Symbol T0SE T0CON.4 
Symbol T0PSA T0CON.3   
Symbol T0PS2 T0CON.2
Symbol T0PS1 T0CON.1
Symbol T0PS0 T0CON.0

Symbol GIE INTCON.7
Symbol TMR0IE INTCON.5
Symbol TMR0IF INTCON.2 

TMR0ON=1
T08BIT=0
T0CS=0
T0SE=1
T0PSA=0   
T0PS0=0
T0PS1=0
T0PS2=1

GIE=1
TMR0IE=1
TMR0IF=0

Dim SAY As Word

Print At 1,1, "Saat :",DEC3 SAY

On_Interrupt GoTo Saat

SAY=12
 
High PORTA.0  
DelayMS 1000
Basla:

Print At 1,1, "Saat :",DEC3 SAY 


If SAY = 125 Then
Toggle PORTA.0
SAY=0
End If

GoTo Basla

Saat:
 
 SAY=SAY+1
 TMR0IF=0
 Resume
 Enable
End

FUNKY

kesme bölümünü böyle yazarsan çalışıyor denedim...
kapattığım satırlar açıkolunca da çalışıyor......

Saat:
Context Save
' if  TMR0IF=1 then
SAY=SAY+1
TMR0IF=0
' endif
Context Restore
End

Cenk_Unur

Teşekkür ederim dediğiniz gibi düzeltme yapınca kod çalışıyor.