Also um genau zu sein, brauchst du nur einen Timer, der jede Sekunde einen Interrupt auslöst, oder?
In der Interruptroutine wird dann der zuvor gespeicherte Wert bearbeitet, wie, dass ist dann deine Aufgabe. Hier mal ein wenig Code von mir:
Code:
$regfile = "m8def.dat"
$crystal = 8000000
Dim Zaehlerstand As Byte '255 Werte in der Sec. sollte nicht überschritten werden, ansonsten eine Word-varaible verwenden oder so.
Const Timervorgabe = 34286 '65536-31250 = 34286
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer1_isr
Timer1 = Timervorgabe
Enable Timer1
Enable Interrupts
Do
'Bestimmung von Zaehlerstand (deine Aufgabe ;-) )
Loop
End
Timer1_isr:
Timer1 = Timervorgabe
'Hier passiert jetzt was mit deinem Zaehlerstand
Zaehlerstand = 0
Return
Der Code ist schon getestet, da ich weder weiß, welchen Controller du verwendest, noch wie dein uC getaktet ist, überlasse ich dann die anpassung der Werte dir, oder du sagst mir halt, wie es aussieht.
MFG Moritz
Lesezeichen