Hi g_lock,
wenn Du den Timer stoppst, läuft er auch nicht.
Schmeiß den Befehl "Stop Timer0" raus.
Gruß.
Rainer
Hallo,
ich versuche beim Tiny26 den timer Interrupt zu nutze.
Leider springt das Prog nicht in die Interrupt Sub.
Stell ich mich nur blöd an? Was mach ich falsch?
Grüsse Klaus
Code:$regfile = "At26def.dat" $crystal = 8000000 '----------------Timer config--------------------------- Config Timer0 = Timer , Prescale = 256 Enable Timer0 Enable Interrupts On Ovf0 Tim0_isr '----------------- RS232 Config ------------------ Open "coma.5:9600,8,n,1" For Output As #1 Dim Timervar As Integer Stop Timer0 Do Print #1 , Timervar Waitms 500 Loop Tim0_isr: Incr Timervar Return End
Hi g_lock,
wenn Du den Timer stoppst, läuft er auch nicht.
Schmeiß den Befehl "Stop Timer0" raus.
Gruß.
Rainer
Oh, wie peinlich!
Ich hatte das so:
wollte denCode:$regfile = "At26def.dat" $crystal = 8000000 '----------------Timer config--------------------------- Config Timer0 = Timer , Prescale = 256 Enable Timer0 Enable Interrupts On Ovf0 Tim0_isr '----------------- RS232 Config ------------------ Open "coma.5:9600,8,n,1" For Output As #1 Dim Timervar As Integer Stop Timer0 Start Timer0 Do Print #1 , Timervar Waitms 500 Loop Tim0_isr: Incr Timervar Return End
Stop Timer0 Löschen
Start Timer0 lassen.
habs genau umgekehrt gemacht.
Es läuft leider trotzdem nicht.[/quote]
Ok, hab's jetzt mal durch den Simulator gejagt.
Der Timerinterrupt lässt dem Software-UART keine Chance mal was auszugeben. Der Timer springt ca. alle 8000 µS in die ISR. Scheint mit dem Software-UART nicht zu gehen. Probier mal mein Beispiel. Nur mal so zum testen.
Bei Timervar > 32767 kriegst Du einen Überlauf und es wird von -32767 bis +32767 gezählt .... also nicht erschreckenCode:$regfile = "At26def.dat" $crystal = 8000000 '----------------Timer config--------------------------- Config Timer0 = Timer , Prescale = 1024 Enable Timer0 Enable Interrupts On Timer0 Tim0_isr '----------------- RS232 Config ------------------ Open "coma.5:9600,8,n,1" For Output As #1 Dim Timervar As Integer Do Stop Timer0 Print #1 , Timervar Start Timer0 Waitms 500 Loop Tim0_isr: Incr Timervar Return End
Ist aber zum testen jetzt egal
Gruß.
Rainer
Lesezeichen