www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage SRAM


Autor: Kobold (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Standardfehler, in beiden Versionen: Im Interrupt-Handler wird SREG 
verändert aber nicht gesichert.

Autor: Kobold (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> .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).

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es wäre echt toll, wenn Du den Code schicken könntest, der auch bei Dir 
läuft.

Autor: Kobold (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem gelöst, das temporäre Register, welches im Interrupt geändert 
wird, muss natürlich gesichert werden (Kopf klatsch...)

der Kobold

Autor: Kobold (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Kobold (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
....Hmmm, Hilfe ohne Code wird wohl nichts werden :(
hier ist er :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.