Hallo,
Ich habe mir aus verschiedenen Code-Schippseln eine kleines Uhren-Programm gebastelt.
Code:
$regfile = "m8def.dat"
$crystal = 16000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer1int
Dim Sekunde As Byte
Dim Minute As Byte
Dim Stunde As Byte
Enable Interrupts
Stunde = 18
Minute = 13
Enable Timer1
Main:
Initlcd
Cls
Cursor Off
Do
If Sekunde = 60 Then
Gosub Minute1
End If
Locate 1 , 1
If Stunde > 9 Then Lcd Stunde
If Stunde < 10 Then Lcd "0" ; Stunde
Lcd ":"
If Minute > 9 Then Lcd Minute
If Minute < 10 Then Lcd "0" ; Minute
Lcd ":"
If Sekunde > 9 Then Lcd Sekunde
If Sekunde < 10 Then Lcd "0" ; Sekunde
Loop
Goto Main
Timer1int:
Timer1 = 3037
Sekunde = Sekunde + 1
Return
Minute1:
Incr Minute
Sekunde = 0
If Minute = 60 Then
Gosub Stunde1
End If
Return
Stunde1:
Incr Stunde
Minute = 0
If Stunde = 24 Then
Stunde = 0
End If
Return
Nach anfänglichen Problemen funktioniert das Programm jetzt ganz gut aber, wenn es z.B. 18:14:10 Uhr wird erscheint plötzlich hinter der Sekunden anzeige eine zusätzliche Null (18:14:100Uhr). Was ist das Problem in dem Code? Desweiteren würde ich mich über konstruktive Kritik im Allgemeinen freuen.
Gruß André
Lesezeichen