Hallo Nach langem hin- und herprobieren weiss ich jetzt endgültig nicht mehr weiter. Zunächst aber zu den allg. Infos: ATmega162, 16Mhz AVR-GCC 4.2.2 AVR-LIBC 1.6.2 Zum Problem: In mein Programm wollte ich einen einfachen 1ms-Timer einfügen. Standardmäßig mit Timer0, dem 8 Bit Timer. Leider wird die Overflow-Interrupt-Routine nicht aufgerufen. Ich habe jetzt das Problem soweit eingegrenzt, dass das angehängte Programm entstand. Der Timer 0 wird initialisiert mit 1msec. Beim ersten Aufruf der ISR sollte die LED an PB0 eingeschaltet werden. Dies tut sie aber nicht!! Interessant wirds, wenn man sich den auskommentierten Teil in der Main-WhileLoop ansieht. Hier frage ich das TOV0-Bit im TIFR direkt ab. Wenn ich diesen Code statt der ISR nutze, funktioniert das Programm (LED wird eingeschaltet). Das bedeutet ja, dass der Timer grundsätzlich läuft. Leider habe ich z.Zt. keinen anderen Controller hier. Bin mir nämlich sicher, dass genau diese Einstellung mal bei mir beim Mega8 funktionierte. Ich hoffe mir kann jemand von euch helfen, meine ISR in Gang zu bringen. Vielen Dank an euch
Tja, das kommt davon, wenn man in die Register irgendwelche Hex-Werte schreibt und nicht die symbolischen Namen verwendet. TOIE0 hat in TIMSK bei einem Mega162 eine andere Position als beim Mega8.
Ich glaubs ja nicht. Ich werd definitiv in Zukunft die symb. Namen verwenden. Verringert die Wahrscheinlichkeit von Copy&Paste-Fehlern. Bemerkenswert finde ich übrigens, dass du nur 7 Minuten nach Abschicken des Threads den Fehler gefunden hast. Ich hab alles gefühlte 100 mal überprüft. Dank dir für dein Hilfe.
Hallo, ich glaube nicht, daß er die 7 Minuten dafür gebraucht hat, er hat vermutlich nur nicht früher Deine Frage gelesen. Aber eine wichtige Erkenntnis hast Du ja schon gewonnen, mach das wirklich so. Ich habe leider auch schon Stunden nach einem Fehler in einer fremden Software gesucht, weil etwas nicht ging. Alles war sauber vereinbart, richtig von mir geändert. Leider hatte der Programmier an einer einzigen Stelle im Programm nicht seine eigene Vereinbarung genutzt, sondern den Wert direkt geschrieben... Gruß aus Berlin Michael
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.