Problem, µC läuft nur nach "frischem" flashen

OP #3150080
So, hallo erst mal :)

Also, ich habe folgendes Problem.
Ich habe ein Programm geschrieben, bei dem mehrere Sensoren und ein LCD 
angesteuert wird.
Lief bisher, nur habe ich das Programm jetzt aufgeteilt in verschiedene 
.c und .h files.
--> Controller programmiert und läuft.

Wenn ich jetzt aber den Strom wegnehme (externe Stromversorgung, nicht 
über PC) und wieder hinzuschalte, Initialisiert weder mein LCD, noch 
laufen irgendwelche Sensoren.
Sprich, geht nicht.

Nun meine Frage, ob irgendjemand so etwas schon einmal gehabt hat und 
eine Ahnung hat was ich hierbei verbrochen haben könnte :)

Falls ihr noch Daten braucht bitte nur melden :)


Viele Grüße
#3150093
Michael G. schrieb:

> Nun meine Frage, ob irgendjemand so etwas schon einmal gehabt hat und
> eine Ahnung hat was ich hierbei verbrochen haben könnte :)

Warte mal am Anfang in main() ein bischen, ehe du dann die 
Initialisierungen durchführst. Gib den angeschlossenen Schaltungen ein 
bischen Zeit, sich selbst nach Anlagen der Stromversorgung zu 
initialisieren bzw. der Stromversorgung selbst Zeit, sich zu 
stabilisieren.
#3150096
Michael G. schrieb:
> Immer.
> Ich steck den Strom an den Controller (Atmega 16 btw), geht nicht, neu
> programmieren --> geht

Beim neu programmieren schaltest du den Strom nicht ab. Nach einem Reset 
des µC sind daher die angeschlossenen Komponenten sicher schon so weit, 
deine Initialisierung anzunehmen.

Anstatt neu zu programmieren, zieh einfach nur mal den Reset-Pin des µC 
kurz auf Masse. Wenn dann alles anläuft, dann legt dein µC etwas zu früh 
los. D.h. der entscheidende Punkt ist nicht das neu flashen, sondern 
dass der µC bei bereits anliegender Stromversorgung resettet wird.
OP #3150099
hmm, das könnte sein.. wobei die startup-time mit 64ms wäre..

Aber werde ich auf jeden Fall versuchen, habe das Zeug leider nur gerade 
nicht da, muss ich morgen schaun!

ich hätte jetzt einfach noch ein _delay_ms(100) drangehängt, sollte das 
mit dem Reset-Pin der Fehler sein...

Vorläufig einmal Danke, ich melde mich sobald ichs getestet habe!


Lg
Gast #3150499
Das weckt Erinnerungen.

Das gleiche Phänomen hatte ich vor ein paar Jahren mit ATmega161.
Die Applikation war nichts exotisches (LANC-Kamerasteuerung);
funktionierte nur direkt nach der Programmierung (Reset ohne
Abnahme der Betriebsspannung) und bei erneuter Inbetriebnahme nicht.

Die Ursache für das Problem habe ich nicht klären können -
ich hatte es zum Schluss bis auf "eine LED Einschalten"-Aufgabe 
reduziert.
Mit ATmega161 habe ich danach nichts mehr gemacht.
Gast #3150531
Mach doch Nägel mit Köpfen:
Ich halte zwar nichts von Delay aber in diesem Falle einfach eine 
Sekunde, vor allem warten. Das stört, wenn es vor der Initialisierung 
eingebaut wird nicht, höchstens die Einschaltzeit, aber wenn dann die 
Peripherie noch nicht "ausgeschlossen" ist, hast Du wahrscheinlich 
Programmierproblem.
Gast #3150606
Ich würde mal die üblichen Verdächtigen abchecken:
- Brownout-Detektor an?
- Watchdog korrekt bedient?
- Fuses korrekt gesetzt?
- Spannungsversorgung schnell genug okay?
- Reset-Schaltung okay?
OP #3151001
Also :D Vielen Dank für die vielen Antworten ^^

Habe es heute getestet - 100ms Wartezeit vor dem gesamten Programm und 
geht :)

Vielen Dank trotzdem für alle Lösungsideen die im Nachhinein kamen!

Viele Grüße und ein schöne Wochenende ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.