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

OP #3150080
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren