Timer0 für Atmega8

#713185
Lesenswert?
• ▲
▼
Ab wo verstehst du die Timerbehandlung nicht mehr?

So wie ich das sehe, wird der Timer ganz normal als
Overflow Timer benutzt, d.h. in regelmäßigen Zeitabständen
wird der Overflow Interrupt ausgelöst. Da diese
regelmäßigen Zeitabstände noch zu klein sind, werden
daher in der ISR weitere Zähler benutzt um den Zeittakt
für die eigentliche Anwendung noch herunterzuteilen.

So nach em Muster: Wenn man 60 mal 1 Sekunde wartet,
hat man in Summe auch 1 Minute gewartet.
Gast #713399
Lesenswert?
• ▲
▼
Ja das habe ich auch so verstanden, und eigentlich sollte dann irgend 
wann mal der Interrupt angesprungen werden, das passiert leider nie. Und 
auf STK500 passiert da leider auch nichts. Ich meine Blinken und 
Einschaltverzögerung!
#713404
Lesenswert?
• ▲
▼
Martina wrote:
> Ja das habe ich auch so verstanden, und eigentlich sollte dann irgend
> wann mal der Interrupt angesprungen werden, das passiert leider nie.

Das mag durchaus sein.
Aber der Timercode ist so erst mal in Ordnung.
0x02 in TIMSK ist der Overflow Interrupt im Timer 0,
ein 'sei' wird gemacht, der Timer hat einen
Vorteiler eingestellt

Das sind dann eigentlich schon alle Bedingungen, damit
der Timer läuft und einen Interrupt beim Overflow
auslöst.

> Und
> auf STK500 passiert da leider auch nichts. Ich meine Blinken und
> Einschaltverzögerung!

Setz doch einfach mal zusätzlichen Code in die Overflowfunktion
und lass dort eine LED einschalten, dann weist du ob der Timer
läuft und einen Overflow auslöst oder nicht.

Zwischen dem Timer und den 'SPS Ausgängen' sitzt ja
noch eine Softwareschicht die ebenfalls Fehler enthalten
kann. Die will ich mir jetzt aber nicht antun :-) Die
ist grauenhaft geschrieben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren