-
Timer und Zähler
Hallo,
was mache ich da eigentlch falsch?
Der Zähler müsste doch im Sekundentakt hochzählen, oder?
Code:
$regfile = "m32def.dat"
$framesize = 40
$swstack = 10
$hwstack = 32
$crystal = 8000000
$baud = 9600
Config Portc.2 = Output 'definiert Portd als Output
Dim Zaehler As Byte
Zaehler = 0
Config Timer1 = Timer , Prescale = 256 'Konfiguriere Timer1
Enable Timer1 'schalte den Timer1 ein
On Timer1 Isr_von_timer1 'verzweige bei Timer1 überlauf zu Isr_von_Timer1
Enable Interrupts
Timer1 = 34285 'Timer1 soll schon von 34285 wegzählen
Do
Print "Zaehler =" ; Zaehler
If Zaehler = 2 Then
Goto Uhrzeit
End If
If Zaehler = 4 Then
Goto Datum
End If
If Zaehler = 6 Then
Goto Temperatur
End If
Loop
End
Isr_von_timer1: 'ISR von Timer1
Timer1 = 34285 'Timer1 soll wieder von 34285 wegzählen
On Timer1 'schaltet Portd.0 im Sekundentakt
Incr Zaehler
'EIN und AUS
'....oder z.B. incr Variable
Uhrzeit:
Print "Uhrzeit"
Datum:
Print "Datum"
Temperatur:
Print "Temperatur"
Gruß
Richad
-
da iss glaubich wohl einiges falsch ^^
1. nen timer muss man meiner meinung nach auch starten
2. du hast kein return-jump in deiner isr, d.h. das programm beendet sich im prinzip nach dem ersten jump beim timerüberlauf
3. du willst portd.0 setzen und configst dafür c.2 als output?
Code:
$regfile = "m32def.dat"
$framesize = 40
$swstack = 10
$hwstack = 32
$crystal = 8000000
$baud = 9600
Config Portd.0 = Output 'definiert Portd als Output
Dim Zaehler As Byte
Zaehler = 0
Config Timer1 = Timer , Prescale = 256 'Konfiguriere Timer1
Enable Interrupts
Enable Timer1 'schalte den Timer1 ein
On Timer1 Isr_von_timer1 'verzweige bei Timer1 überlauf zu Isr_von_Timer1
Timer1 = 34285 'Timer1 soll schon von 34285 wegzählen
Start Timer1
Do
Print "Zaehler =" ; Zaehler
If Zaehler = 2 Then
Goto Uhrzeit
End If
If Zaehler = 4 Then
Goto Datum
End If
If Zaehler = 6 Then
Goto Temperatur
End If
Loop
End
Isr_von_timer1: 'ISR von Timer1
Timer1 = 34285 'Timer1 soll wieder von 34285 wegzählen
Toggle Portd.0
Incr Zaehler
Return
Uhrzeit:
Print "Uhrzeit"
Datum:
Print "Datum"
Temperatur:
Print "Temperatur"
so, ich gloob des sollt besser funzn ^^
Maddin
-
Vielen Dank Maddin.
Gruß aus Franken
Rici
[quote="x-ryder"]da iss glaubich wohl einiges falsch ^^
1. nen timer muss man meiner meinung nach auch starten
2. du hast kein return-jump in deiner isr, d.h. das programm beendet sich im prinzip nach dem ersten jump beim timerüberlauf
3. du willst portd.0 setzen und configst dafür c.2 als output?