Napisałem sobie taki prosty programik, dodam, że to jeden z moich pierwszych z użyciem timera i niby wszystko ok to jednak zegarek przestaje wyświetlać po ok 4 minutach poprawnej pracy.
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 20 * 2
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portd.5 , Db7 = Portd.6 , E = Portd.7 , Rs = Portb.0
Cursor Off
Cls
Config Timer0 = Timer , Prescale = 256
Timer0 = 6
Enable Interrupts
Enable Timer0
Start Timer0
On Timer0 Przepelnil
Dim Zlicz_przep As Word
Dim Sekunda As Byte
Dim Minuta As Byte
Dim Godz As Byte
Godz = 19
Minuta = 22
Do
If Minuta = 60 Then
Minuta = 0
Incr Godz
End If
If Godz = 24 Then
Godz = 0
End If
Locate 1 , 1
Lcd " " ; Godz ; ":" ; Minuta ; ":" ; Sekunda
Loop
End
Przepelnil:
Incr Zlicz_przep
Timer0 = 6
If Zlicz_przep = 125 Then
Zlicz_przep = 0
Incr Sekunda
End If
If Sekunda = 60 Then
Cls
Sekunda = 0
Incr Minuta
End If
Return