PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein ATmega32-Controller spinnt!



oliher
14.03.2008, 17:33
Mein Programm läuft eigentlich super. Seit neuestem allerdings nicht mehr. Gelegentlich stürzt das Programm ab und hängt irgendwo im Nirwana.

Kann der Controller beschädigt sein?

Gruß

Oliver

Christopher1
14.03.2008, 18:13
Klar kann er, aber wenn du an der Hardware nichts verändert hast solte es eher am Programm liegen.

DerMaddin
14.03.2008, 18:37
Tipp von mir:
Traces einbauen: Durch RS232 Ausgaben gucken, wo das Programm lang läuft. Daran kann man erkennen, was schief geht. Wenn du ein zufälliges Programmverhalten beobachtest, kann es dran liegen, dass du auf eine nicht initialisierte Variable zugreifst. Oder ein nicht initialisierter Pointer.

Mfg Der Maddin

oliher
14.03.2008, 21:18
Ich habe ja Traces in meinem Programm.

Zur Info:

Mein Controller kommuniziert über RS232 mit dem PC im Augenblick über Hyperterminal. Ich habe eine Menüstrucktur aufgebaut. D.h. Hauptmenue --> Untermenue --> Untermenue1 --> usw.. Über Hyperterminal bekommt der Controller den Befehl in die verschiedenen Menues zu wechseln und wieder zurück zu wecheln. In den verschiedenen Menues werden unterschiedliche Aufgaben von dem Controller verlangt. Unter anderem Eine Schrittmotorsteuerung Manuell sowie automatisch zur Schaltermessung von Schaltpunkt, Rückschaltpunkt, usw.
Jetzt kam es gelegentlich vor, das der Controller so seine Aussetzer hatte, z.B. wird plötzlich ein Schleifenkörper verlassen. oder es werden Zeichen an den PC gesendet, die an diesen Stellen überhaupt nicht gesendet werden dürfen. Oder es werden plötzlich nicht mehr alle Zeichen an den PC gesendet, oder vom PC empfangen? Oder es werden plötzlich irgendwelche Ausgänge gesetzt, so hat sich mein Schrittmotor schon einmal selbstständig gemacht.

Ich weiß nicht so recht woran es liegen kann. Zu Anfang hatte ich das Gefühl, dass es daran liegen könnte, dass ich mein selbstgelötetes Controllerboard (für ein 19-Zoll Rack) per selbstgebastelter Verlängerung aus dem 19-Zoll Gehäuse herausgeführt hatte um mit dem ISP den Controller programmieren zu können. Und das da vielleicht Fremdspannungen auf dem Board entstehen könnten. Sobald ich das Controllerboard wieder sachgemäß im 19-Zoll Rack untergebracht hatte, traten die Fehler nicht mehr auf. Bis Heute \:D/

Außerdem werde ich das Gefühl nicht los, dass durch die ständigen Fehlversuche meinen Controller per ISP zu flashen (ISP-Programmieradapter von Roboikhardware) etwas kaputtgegangen sein kann. :-s Häufig klappt es erst nach ca. 20 Versuchen!

Hatte schonmal jemand ähnliche Probleme, oder kommt jemanden die Problematik bekannt vor?

Gruß Oliver

oliher
15.03.2008, 08:54
Gibt es denn keine Antworten?

Hat noch keiner solche Problem, wie oben beschrieben mit seinem Controller gehabt?

Brauche dringend Tipps!

Gruß Oliver

DerMaddin
15.03.2008, 10:29
Hey, also diese Codegeschichten mit den komischen Programmsprüngen könnten in einer zu hohen Optimierungsstufe des gcc begründet sein. Nimm mal die -O Kommandeparameter raus, vlt gehts dann besser.

Bei dem anderen kann ich dir nicht helfen, sry

Felix G
15.03.2008, 11:27
Was die vielen Programmierversuche betrifft:

das Kabel muss so kurz sein wie möglich, da die ganze Geschichte recht störanfällig ist. Der Controller selbst sollte mit den vielen Fehlversuchen eigentlich keine Probleme haben, aber es ist ein deutliches Anzeichen dafür daß das verwendete Kabel viel zu lang ist.

Ceos
15.03.2008, 11:40
wenn du mal programmschnipsel präsentieren würdest könnte man dir auch helfen, meine glaskugel ist noch immer in der reinigung

oliher
17.03.2008, 06:30
Danke erstmal für die Antworten,

ich habe schon einen Original AVR-ISP Programmer bestellt und hoffe das es damit besser funkioniert. Danke für den Tipp mit der Optimierungsstufe, werde ich heute gleich mal ausprobieren.

Ich werde Heute Abend ein paar Zeilen Programmcode hier veröffentlichen. Außerdem habe ich am Wochenende meine Controllerkarte nach Kurzschlüssen untersucht und bin auch fündig geworden, vielleicht lag es daran. ein abgeknipstes Beinchen lag zwischen zwei Kontakten (ich glaube es war sogar zw. +5V und 0V). Außerdem habe ich ein Stückchen Lötrest zwischen zwei anderen Kontakten am ISP gefunden, und 3 Kontakte waren sehr stark oxidiert. Ich habe die Platine jetzt gereinigt, nochmal kontrolliert und mit Plastikspray versiegelt. Meint Ihr dies könnte die Ursache solcher Probleme sein?

Gruß Oliver