Es läuft sauber in Sekundentakt runter..ohne Pause---geflasht in Atmega
Code:
$regfile = "m8def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
Dim Sekunde As Byte 'Uhrzeit - Sekunde
Dim Minute As Byte 'Uhrzeit Minute
Dim Stunde As Byte 'Uhrzeit Stunde
Dim Lcd_sekunde As String * 2 'Ausgabe Sekunden
Dim Lcd_minute As String * 2 'Ausgabe Minuten
Dim Lcd_stunde As String * 2 'Ausgabe Sekunden
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , _
Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5
Config Lcd = 16 * 2
Cls
Cursor Off
'-----------------------------------------------
'-----------------------------------------------
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer_isr
Enable Timer1
Timer1 = 3036
Enable Interrupts
Do
Lcd_stunde = Str(stunde)
Lcd_stunde = Format(lcd_stunde , "00")
'----------------------------------
Lcd_minute = Str(minute)
Lcd_minute = Format(lcd_minute , "00")
'------------------------------------
Lcd_sekunde = Str(sekunde)
Lcd_sekunde = Format(lcd_sekunde , "00")
Anzeige:
Locate 2 , 13
Lcd Lcd_sekunde
Locate 2 , 11
Lcd ":"
Locate 2 , 8
Lcd Lcd_minute
Locate 2 , 6
Lcd ":"
Locate 2 , 3
Lcd Lcd_stunde
Locate 1 , 1
Lcd " Timer "
Waitms 5
If Sekunde > 0 Then
Sekunde = Sekunde - 1
Else
Sekunde = 59
If Minute > 0 Then
Minute = Minute - 1
Else
Minute = 59
If Stunde > 23 Then
Stunde = Stunde - 1
Stunde = 00
End If
End If
End If
Waitms 1000
Loop
Timer_isr:
Incr Sekunde
Timer1 = 3036
Stop Timer1
Return