Forum: Mikrocontroller und Digitale Elektronik Timer2 an ATmega8


von Rudi Ratlos (Gast)


Lesenswert?

Hallo,

ich probiere vergeblich eine LED an PB4 im 1Hz Takt blinken zu lassen.
Ich benutze einen externen Uhrenquarz (32767Hz). Hier der Code für
Bascom:

$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 mir jemand sagen wo mein Fehler liegt?

Mfg Rudi Ratlos

von KoKo (Gast)


Lesenswert?

Musst du nicht noch den globalen Interrupt freigeben?

von MR (Gast)


Lesenswert?

du must die fusebits setzen.wenn du den 32 Khz quarz
benutzt läuft der mega8 nur noch auf internen RC ozi.

von Johannes M. (johnny-m)


Lesenswert?

KoKo wrote:
> Musst du nicht noch den globalen Interrupt freigeben?
Macht er ja:
Sreg.7 = 1                  'Interrupts freischalten

MR wrote:
> du must die fusebits setzen.wenn du den 32 Khz quarz
> benutzt läuft der mega8 nur noch auf internen RC ozi.
Er will ja gar nicht den µC mit dem Uhrenquarz laufen lassen, sondern 
Timer2 asynchron betreiben. Das hat mit Fusebits nichts zu tun.

von Johannes M. (johnny-m)


Lesenswert?

Überprüf mal, ob der Oszillator mit dem Uhrenquarz überhaupt schwingt 
und ob die LED auch tatsächlich an dem Pin angeschlossen ist, den Du 
ansteuerst. Ich kenn mich zwar mit BASCOM so gut wie überhaupt nicht 
aus, aber ich sehe keine augenfälligen Fehler im Code.

von AVR (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.