PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was mache ich falsch? Timer2



Baumschubser
01.06.2005, 20:24
Moin Moin,

ich probiere grade eine LED ihm 1Hz Takt blinken zu lassen. Der interne Ozillator meines Mega 8 ist aktiviert, an Pin 9 und 10 hängt ein 32767Hz Quarz ohne zusätzliche Kapazitäten.
Das folgende Programm funktioniert nur, wenn ich das "Assr.as2 = 1" auskommentiere - dann natürlich nicht mit 1Hz.
Hier der Code:


$regfile = "m8def.dat"
$crystal = 1000000

On Timer2 Takt


Ddrb = &B11111111
Portb = &B00000000

Assr.as2 = 1 'asynchroner Betrieb
Tccr2 = &B00000100 'Takt: 32768Hz/64=512Hz
Timsk.toie2 = 1 'Timer2 Overflow-Interrupt einschalten
Sreg.7 = 1 'Interrupts freischalten

Waitms 1000

Do

Loop

Takt:
Portb.4 = Not Portb.4
Return

End


Kann der Quarz kaputt sein oder habe ich ein Fehler im Programm?

Mfg Baumschubser

x-ryder
02.06.2005, 12:26
mach das doch mal mitm config timer2 und enable interrupts

Baumschubser
05.06.2005, 18:51
Der Timer funktioniert jetzt so wie ich es mir vorstelle - genau 1Hz.
Wie kann ich einen Timer softwareseitig eigentlich anhalten?
Der Timer soll z.B. ausgeschaltet werden, wenn ich einen Taster drücke und bei einem weiteren Tastendruck wieder aktiviert werden.

Mfg Baumschubser

x-ryder
06.06.2005, 13:35
stop timer2 und danach zum starten wieder start timer2, aber mach nicht den fehler, den nicht wieder zurückzusetzen