Programm läuft - aber nur direkt nach flashen

OP #7440577
Lesenswert?
• ▲
▼

Guten Tag in die werte Runde,

hier habe ich ein seltsames Problem: Auf einem Attiny13a soll das angehängte Programm laufen. Momentan macht das nicht viel, außer einer LED an PB4, welche in einem bestimmten Rhythmus aufleuchtet.

Das Programm läuft direkt nach dem flashen wie gewünscht, und auch im Simulator gibt's keinerlei Probleme. Sobald ich aber den Controller vom Strom ab- und wieder anklemme (sprich: vom Programmer den USB-Stecker abziehe und gleich wieder anstecke), passieren unvorhersehbare Dinge. Meistens passiert einfach gar nichts (LED bleibt aus) oder - denn die Versorgungsspannung nur kurz getrennt wird - die LED leuchtet nach scheinbar zufälligem Muster oder invertiert. Ein Reset über den reset-Pin bringt auch keine Änderung. Wenn ich jetzt wieder neu flashe läuft alles wieder wie erwartet - bis zur nächsten Trennung der Stromversorgung.

Am Attiny hängt nichts außer dem Programmer sowie der gegen GND geschalteten LED samt 2K-Vorwiderstand und einem 100n-Kondensator zwischen Vcc und GND, alles auf einem Steckbrett. Die Fuses sind im Auslieferungszustand (64ms startup-time). Beim flashen selbst und auch einem verify mit avrdude treten keinerlei Fehler auf.

Ich habe auch schon versucht die Warteschleife, die am Ende des Codes steht, gleich zu Beginn mehrmals laufen zu lassen - keine Änderung (außer daß das Programm direkt nach dem flashen halt später startet). Alternativ habe ich auch eine Version, die statt des eeproms den SRAM nutzt. Damit exakt dasselbe Phänomen, so daß ein defekter eeprom vermutlich auch eher unwahrscheinlich ist.

Die Spannungsversorgung von 3.3V kommt aus einer stabilen Quelle, genauer aus einem Diamex AVR ISP. Damit hatte ich noch nie Probleme und glaube nicht, daß es daran liegt.

Hat zufällig jemand einen sachdienlichen Hinweis für mich?

Angehängte Dateien:
#7440586
Lesenswert?
• ▲
▼

Stephan E. schrieb:

Das Programm läuft direkt nach dem flashen wie gewünscht, und auch im Simulator gibt's keinerlei Probleme. Sobald ich aber den Controller vom Strom ab- und wieder anklemme (sprich: vom Programmer den USB-Stecker abziehe und gleich wieder anstecke), passieren unvorhersehbare Dinge.

Sehr wahrscheinlich: nicht initialisierte "Variablen".

Vermutlich ist das Programm allein mit dem Simulator entwickelt worden. Der initialisiert den SRAM immer komplett auf Null. Das ist aber nicht das Verhalten der realen Hardware. Da enthält der SRAM beim Programmstart mehr oder weniger zufällige Werte.

Beim Simulator fallen fehlende Initialisierungen auf Null deswegen nicht auf. Auf der realen Hardware dann aber schon...

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.