Testus2K
22.05.2013, 19:58
Hey,
Der Timer sollte doch so wie ich das verstanden habe unabhängig vom rest des Avr laufen können, oder?
Ich meine festgestellt zu haben, dass mein Timer, der Einmal Pro Sekunde aufgerufen wird, den Sekundentakt nicht mehr einhält, wenn ich den wait Befehl nutze.
Das passiert, obwohl die Pause deutlich kleiner ist, als eine Sekunde.
Hab hier mal ein Beispiel reingemacht. Bilde ich mir das nur ein, oder friert wait wirklich alles ein, sogar den unabhängigen Timer?
$regfile = "m8def.dat"
$crystal = 4000000
Dim Zähler As Integer
Zähler=0
Config Portb.7 = Output
Portb.7=1
Config Timer1 = Timer , Prescale = 256
Disable Timer1
On Timer1 Isr_von_timer1
Enable Interrupts
Timer1 = 49500
do
Enable Timer1
loop
Isr_von_timer1:
Incr Zähler
if Zähler=10 Then
Timer1 = 49500
Portb.7=0 'Led an
waitms 200
Portb.7=1 'Led aus
End if
return
Der Timer sollte doch so wie ich das verstanden habe unabhängig vom rest des Avr laufen können, oder?
Ich meine festgestellt zu haben, dass mein Timer, der Einmal Pro Sekunde aufgerufen wird, den Sekundentakt nicht mehr einhält, wenn ich den wait Befehl nutze.
Das passiert, obwohl die Pause deutlich kleiner ist, als eine Sekunde.
Hab hier mal ein Beispiel reingemacht. Bilde ich mir das nur ein, oder friert wait wirklich alles ein, sogar den unabhängigen Timer?
$regfile = "m8def.dat"
$crystal = 4000000
Dim Zähler As Integer
Zähler=0
Config Portb.7 = Output
Portb.7=1
Config Timer1 = Timer , Prescale = 256
Disable Timer1
On Timer1 Isr_von_timer1
Enable Interrupts
Timer1 = 49500
do
Enable Timer1
loop
Isr_von_timer1:
Incr Zähler
if Zähler=10 Then
Timer1 = 49500
Portb.7=0 'Led an
waitms 200
Portb.7=1 'Led aus
End if
return