Hallo allerseits. Ich verzweifel hier langsam. Ich verwende einen ATMEGA128L mit internem RC-Oszillator (8MHz) auf einem STK500/501, und möchte nun im Zyklus von 1ms einen Counter hochzählen lassen. Dazu wollte ich Timer0 verwenden, weil dieser in der Endapplikation noch frei ist. Eigentlich sollte ich alles richtig gemacht haben, aber der Counter wird zusätzlich zu den 1ms sporaisch um einige Impulse hoch gegezählt. Darauf gestoßen bin ich, weil das Timing irgendwie nicht passte. Also habe ich mir den Interrupt noch auf einem Pin ausgegeben. Auf den Scope kann ich aber nichts genaues erkennen, nur das das Bild etwas unruhig wirkt. Deshalb habe ich dem Counter genutzt um einen weiteren Zähler zu triggern, den ich dann einfach auf die LEDs am STK500 ausgeben lasse. Das erwartete Muster bleibt aus, und die LEDs blinken ziemlich chaotisch, also ohne erkennbarer Gesetzmäßigkeit. Leider habe ich im Moment keinen zweiten Chip, so das ich auch einen Defekt nicht ausschließen kann. Das Programm sollte soweit ok sein, zumindest finde ich keinen Fehler. Oder gab es irgendwann mal einen Maskenfehler mit dem beschriebenen Effekt. Leider habe ich in den Erratas nichts gefunden, was als Ursache in Frage kommen könnte. Hat jemand noch eine Idee? Ich habe auch schon versucht über den TOV0 zu gehen, also den Timer nicht im CTC-Mode zu treiben. Es zeigte sich aber das selbe Verhalten. Weiter habe ich auch mal den RC-Oszllator auf 1MHz gedrosselt und den externen Quartz benutzt, ebenfalls ohne Erfolg. Die Versorgungsspannung ist sauber und Störquellen sind auch nicht in der Nähe. Grüße und schon einmal vielen Dank.
In deiner Endlosschleife testet das eine IF die ms ab und erhöht den Zeitzähler. Die zweite IF testet den Zähler und erhöht die LED-Ausgabe. Bis der ms-Zähler sich wieder ändert ist dein Vergleich ==255 immer war, LED wird immer erhöht. Du must deine LED-Ausgabe anderst einbinden! (Nur wenn sich Zeitzähler geändert hat, } vom 1 IF versetzen). So, genug Hielfe! avr
Danke Dir, das war scheinbar der Fehler. Wie konnte ich nur so dämlich sein. Jatzt habe ich 6 Stunden ein Phantom gejagt. Grüße
Solche Fehler/Phantome hat schon jeder gejagt. Gut ist, wenn man sie findet, d.h. man eine Erklärung hat oder kriegt. Oft ist man aber blind für eigene Fehler, daher wird bei einer Softwareüberprüfung für Sicherheitsabnahmen von fremden Programmieren getestet und analysiert. Schönen Abend noch ;) avr
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.