Forum: Mikrocontroller und Digitale Elektronik Hatte schonmal jmd ein aehnliches Problem gehabt????


von Jim (Gast)


Lesenswert?

Hi Leuts!
Habe irgendwie ein komisches Problem! Habe ein Program in "Assembler"
Programmiert , das nach dem Programmieren mit yaap auch funktioniert.
Hole ich nun den Stecker paar mal aus der Steckdose so  haengt der
Mikrocontroller sich auf. Nun reicht es aber nicht ihn wieder normal zu
clearen und programmieren, sondern ich muss erst ein anderes Program
draufhaun und dann wieder das eigentliche Program draufmachen, dann
funktioniert es erst mal wieder.
-Program ist ziemlich komplex
-Watchdog hilft anscheinend nicht wenn ueberhaupt richtig
initialisiert:
  ldi temp,((0<<WDCE)|(1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0))
  out WDTCR,temp
-kann es irgendein Ueberlauf sein
-hatte jemand schonmal aehnliche Probleme
-habe zwei der Atmega8 ausprobiert und bei beiden das gleiche Problem
gehabt

von Jim (Gast)


Lesenswert?

Lasst mich doch nicht so hängen!!!!!!!

von thkais (Gast)


Lesenswert?

Das hat nichts mit "hängenlassen" zu tun - ich habe solche Probleme
(Gottseidank) nicht. Meine Erfahrung ist aber: Auch scheinbar durch
Hardware verursachte Fehler haben meistens ihre Ursache doch in der
Software.
Es könnte sein, daß in Deiner Software irgendwelche Register nicht
richtig definiert sind, denn ich habe in den Datenblättern bislang nur
den Hinweis, daß bei Reset die I/O-Register auf einen definierten
Zustand gesetzt werden - nicht aber die Register.
Es könnte nun sein, daß durch Dein zweites Programm dieses Register
richtig gesetzt wird, und dadurch Dein ursprüngliches Programm wieder
richtig reagiert.

von Jim (Gast)


Lesenswert?

So was habe ich auch schon gedacht, was meinst du sollte ich nach dem
reset alle Register auf null setzen mit clr oder wie koennte ich
rauskriegen was da faul ist?

von Quark (Gast)


Lesenswert?

Hi,
"hängenlassen"? Du willst ja nicht, dass die Leute
so ein Quark schreiben, wie ich jetzt.
Also besser nichts schreiben, wenn man keinen Tipp hat,
als so "rumzuquarken".
Kannst Du ein "simples" Prg. proggen (dann Stecker rein-raus),
um mal zu schauen ob es Soft- oder Hardware ist?
Sonst weiss ich es auch nicht. Mein 2313 hängt sich nur auf,
wenn ich den Reset nicht anständig bediene und/oder die
Programierleitung zum Paral.-Port noch angeschlossen ist.
Grüße und viel Erfolg
Quark

von Jim (Gast)


Lesenswert?

Ist nur bei dem code der Fall sonst keinerlei Probleme!!!!!!

von thkais (Gast)


Lesenswert?

Es gibt da verschiedene Möglichkeiten, z.B. den Code komplett durchgehen
und schauen, welches Register nicht vordefiniert wird (man sollte alle
benutzten Register vordefinieren). Die einfachste Möglichkeit wäre
natürlich, grundsätzlich alle Register auf 0 zu setzen, wie Du schon
vorgeschlagen hast.

von tex (Gast)


Lesenswert?

Ich könnte mir vorstellen, das Dein Problem seine Ursache weit hinter
dem Horizont des (Bitte entschuldigt!) "Hauselektrikers" hat. Sobald
Du Dich mit den 230V in ein Boot setzt, kanst Du Dir dicke Probleme
einhandeln. Das ist nichts ungewöhnliches. Die Anzahl der Möglichkeiten
ist dabei unendlich.
Es kann z.B. sein, dass Du beim "Stecker ziehen" oder "reinstecken"
für den Bruchteil von µs Überspannungen erzeugst, die direkt oder durch
Induktion in Deinem µC Bits verbiegen. Die können bei ungünstigen
Verhältnissen schnell mal bei 100 - 500V und mehr liegen.
EMV ist auch eine Möglichkeit. Dabei ist dann praktisch alles möglich.
Manchmal kannst Du solche Probleme mit ein paar Varistoren erschlagen.
tex

von Thomas (Gast)


Lesenswert?

Womit programmierst Du das Teil denn?

Ich mach das mit dem Galep4 und wähle Mega128 isp aus (selbstgebauter
Adapter).

Da passiert das auch schon mal. Liegt dann aber am PC. P-Notepad und
Galep -prog schliessen, neu öffnen und geht dann ...(hoffentlich
immer)

TS

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.