Gast
#1630556
Guten Abend
Ich versuche gerade einen Timer zum laufen zu bringen der ca. jede
Sekunde eins nach unten zählt.
Das ganze funktioniert auch ganz gut , allerdings zählt er zu langsam !
Ich habe den Timer1 des Atmega8 gewählt.
Bei einem Prescaler von 256 sollte er in einer Sekunde bis 31250 zählen
oder ? Ich habe deswegen den Timer erst bei 34285 starte lassen.
Leider zählt er aber viel zu langsam , ca 2-3 Sekunden pro Tick bzw bis
er überläuft.
Habe ich einen Denkfehler bei der Rechnung ? Habe ich etwas übersehen
Hier der ganze Code
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2 '
Cls
Dim C As Integer
C = 200
'---------------------------------------------------------
Config Timer1 = Timer , Prescale = 256
Enable Timer1
On Timer1 Isr_von_timer1
Enable Interrupts
Timer1 = 34285
'---------------------------------------------------------
Do
If C = 0 Then Goto Ende
Locate 1 , 1 : Lcd C
Loop
'---------------------------------------------------------
Isr_von_timer1:
C = C - 1
Timer1 = 34285
Return
'---------------------------------------------------------
'---------------------------------------------------------
Ende:
Lcd "Timer ist Over"
End
Return