Assoo,
dann würd ich sagen, nach dem der Timer eingestellt ist und schon mal vor sich hinzählt, braucht man die ISR, die nach jedem Timerdurchlauf aufgerufen wird, in dieser zählt man eine Variable hoch, sonst muss man nix weiter machen, ausser man will den Timer nicht von 0 weglaufen lassen, um zB. eine genauere Zeit zu bekommen. Diese Variable setzt und prüft man vom Hauptprogramm aus, also wenn man weiss, in zB. 15 Sec. soll was sein, diese Variable auf 0 setzen, und dann regelmässig prüfen bis die Variable auf 15 (oder was entsprechend rauskommt für die gewünschte Zeit) prüfen, und dann die gewünschte Aktion aufrufen.
Ich denke das mit diesem Fragment auf die Sprünge geholfen werden kann (ungetestet !):
Code:
Config Timer1 = Timer , Prescale = 1024
Dim Count_1 As Integer
Enable Interrupts
On Timer1 Timer1_isr
Count_1 = 0
Do
' wichtige ProgrammSachen ...
' Timer soll neu gestartet werden,
' alle Werte auf 0 damits auch von vorne losgeht
If Irgendwas Then
Timer1 = 0
Count_1 = 0
Enable Timer1
End If
' prüfen ob die Zeit schon abgelaufen ist
If Count_1 = 15 Then
Waswichtiges()
Count_1 = 0
' Timer_IRQ wieder aus wenn er nicht gebraucht wird
Disable Timer1
End If
' andere wichtige Sachen ...
Loop
End
Timer1_isr:
Count_1 = Count_1 + 1
Return
HTH!
Lesezeichen