Hallo, weiß jemand wie der Timer0 in der oben angehängter Programm funktioniert. Irgendwie komme ich nicht dahinter wie er funktioniert? Kann mir da jemand helfen?
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.
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!
Der Code ist grauenhaft formatiert und es ist ein klassisches Beispiel dafuer, wie man den Praeprozessor in C nicht verwenden sollte... und die Registerwerte sind auch noch hart codiert, das fiesel ich jetzt nicht auseinander. Michael
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.