Ein freundliches Hallo in die Runde, nach der Abarbeitung der für Anfänger wie mich sehr guten Anleitungen bin ich jetzt beim SRAM angekommen, dazu folgendes Problem: Ein kleines Programm bringt ein paar LED in verschiedenen Farben zum Leuchten, das funktioniert soweit ganz gut. Nach Ersatz von normalen Registern durch Bytes im SRAM flackert es allerdings in unregelmäßigen Abständen. Gut, sind ein paar Zeilen mehr, aber könnte das noch andere Urschen haben? Im Anhang sind Ausschnitte aus beide Versionen enthalten, µC ist ein Mega8515 mit 16 MHz Takt. Außer den acht RGB-LEDs hat der Mega nichts weiter zu tun, den Spaghetticode möge man mir in Anbetracht meines Wissensstandes (noch) verzeihen. Für erleuchtende Hinweise schon mal Danke, der Kobold
Standardfehler, in beiden Versionen: Im Interrupt-Handler wird SREG verändert aber nicht gesichert.
Danke für den Hinweis, werde es verbessern. Warum es in der ersten Variante dennoch völlig ohne flackern funktioniert und in der zweite nicht erklärt sich damit für mich nicht erkennbar. der Kobold
> .def Z1 = r20 > .def Z1 = r21 > .def Z1 = r22 > .def Z1 = r23 > .def Z1 = r24 > .def Z1 = r25 > .def Z1 = r26 > .def Z1 = r27 Wat is dat denn? Und da soll überhaupt was funktionieren? Wundert mich, dass das nicht weiter unten haufenweise Fehlermeldungen vom Assembler gibt wegen undefinierter Symbole (Z2...Z8).
Es wäre echt toll, wenn Du den Code schicken könntest, der auch bei Dir läuft.
Problem gelöst, das temporäre Register, welches im Interrupt geändert wird, muss natürlich gesichert werden (Kopf klatsch...) der Kobold
Hallo, obwohl anderer Controller (Tiny13) und ohne SRAM habe ich hier das gleiche Problem des gelegentlichen Flackerns, deshalb hänge ich das hier mal mit ran. SREG ist in der ISR gesichert, das Flackern tritt wieder nur in unregelmäßigen Abständen auf. Für Erklärungen schon mal Danke, der Kobold
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.