mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehler, aber wo?


Autor: Stefan Peter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe folgendes Problem: ein Teil meines Programms will einfach
nicht und ich finde den Fehler, obwohl es nur ein kleiner Ausschnitt
ist, einfach nicht. Eigentlich sollte bei jedem Tastendruck temp3 um
eins erhöht werden und dann angezeigt, wenn eine andere Taste gedrückt
wird soll dieser Wert im Eeprom abgelegt werden.
Der Fehler: Es zeigt zwar, wenn man per isp etwas an die Adresse 0x00
schreibt das richtige an, aber beim ändern erhöht sich der Wert nicht
um zwei sondern springt auf 57 dann in zweierschritten runter bis 47
und dann wieder auf 57. Wenn man nun die OK-Taste drückt, wird ein
anderer Wert im Eeprom abgelegt.
Ich kann mir einfach nicht erklären wo der Fehler liegt. Ich habe mir
überlegt, ob es sein könnte, dass mit den Variablem etwas nicht in
Ordnung ist (bei einem Interrupt die Variablen verändert werden). Doch
dies scheint nicht der Fall zu sein, denn ich habe bei allen interrupts
die in der Interruptschleife verwendeten Register auf den Stack
gesichert und probehalber mal "sei" am Anfang des Programms
herausgenommen, damit keine Interrupts mehr vorkommen, jedoch ohne
Erfolg---> Fehler kann nicht bei den Interrupts liegen!

Danke für eure Hilfe!!

Grüsse
Stefan

Autor: Darko Sabljo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
hmm also wenn ich mir dein Prog so anseh, kommt der da garnie zum "inc
temp3", da du ja nach deinem Entprellen zu mit  "rjmp abgerneu1" zu
eben dieser Sprungmarke springst, die aber in deinem Codeausschnitt
nicht enthalten ist. kannste die noch beifügen?  so is das schwer zu
sagen was in dem abschnitt passiert :)

gruss
darko

Autor: Stefan Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich verstehe nicht recht was du meinst:-( Also die erste
entprellroutine wird bei tastendruck durchlaufen und schon steht man
bei "inc temp3".
abgerneu1 ist einfach eine Stelle im Hauptprogramm, zu welcher
gesprungen wird wenn ein neuer Wert eingestellt wurde, das
Hauptprogramm wird erst dann fortgesetzt.

Autor: Darko Sabljo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wart ma... hast recht ;)  stand da wohl grad aufm schlauch.. vergiss das
was ich sagte ;)
ich grübel nochmal drüber :)

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.