Wie genau ist der Timer1 bei ATMEGA16
Hi,
wie genau ist der Timer1 des ATMEGA16?
Ich habe mit Hilfe von rnAVR und zum Teil geklauten :-) Code eine Uhr geschrieben. Diese Uhr lief die 1. Stunde vor und jetzt nach (je ca 20 Sek). Ist das normal oder mein Code so schlecht (bin Anfänger)?
Code:
Cls
Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5
Config Lcd = 16 * 2
Dim Sekunde As Byte
Dim Minute As Byte
Dim Stunde As Byte
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer_irq
Const Timervorgabe = 3036
Enable Timer1
Enable Interrupts
Stunde = 16 'Uhr stellen
Minute = 27
Do
'Hier könnte Ihr Hauptprogramm stehen
Loop
'Dies ist der Programmteil, der in dem von ihnen gewählten
'Intervall aufgerufen wird
Timer_irq:
'Timer1 = Timervorgabe
Sekunde = Sekunde + 1
If Sekunde = 60 Then
Sekunde = 0
Minute = Minute + 1
If Minute = 60 Then
Minute = 0
Stunde = Stunde + 1
If Stunde = 24 Then Stunde = 0
End If
End If
Cls
Lcd Stunde ; ":" ; Minute ; ":" ; Sekunde
Return
P.S.: Ich benutze ein 16MHz Quartz