Forum: Mikrocontroller und Digitale Elektronik Mysterium...


von Hendrik G. (hndr)


Lesenswert?

Nachdem ich jetzt die ganze Nacht mit der Fehlersuche verbracht habe,
ist mir etwas sehr eigenartiges aufgefallen: Sobald ich mich mit der
Hand meiner Schaltung nähere, spielt die verrückt. Mir ist schon vorher
aufgefallen, dass der µC plötzlich das Schalten von Pins erkannt hat,
ohne dass die geschaltet wurden, aber dass er sie sogar schaltet, wenn
ich ihm zu nahe komme, ist mir unbegreiflich.
Hier eine Zusammenfassung merkwürdiger Fehler, die bei der Findung des
Problems evtl. helfen könnten:

*Pins an Port D werden bei Annäherung als angeschaltet erkannt
*Anschalten anderer Pins schaltet wieder andere an
*Berühren der Platine (egal wo und wie fest, aber nur manchmal)
schaltet Pins ein
*Ich muss Ausgänge auf 1 schalten, um sie zu anzuschalten, bei 0 gehen
sie aus
*Bei eingängen ebenfalls.
*Besonders erstaunlich: Eine Test-LED, die an einem Pin hängt, geht auf
1 aus und auf 0 an. Am selben Pin geht eine 2. Led bei 1 an und bei 0
aus.

Die Schaltung habe ich fertig gelötet bestellt (beim Shop hier) und
habe nochmal alles gründlich auf Lötfehler oder Wackelkontakte geprüft
und Kontakte gemessen - alles ganz normal.

Ich habe mal ein qualitativ grässliches Video des Phänomens angehängt
und nochmal ein helleres Foto in höherer Auflösung:

http://home.arcor.de/hendaws/100_3605.MOV
http://home.arcor.de/hendaws/DSC_4043.JPG

Ich hoffe, irgendjemand weiß eine simple Erklärung dafür und im besten
Fall, wie man das behebt... Um ehrlich zu sein, finde ich es etwas
gruselig :D

von Hendrik G. (hndr)


Lesenswert?

Ach ja, noch ein Hinweis: Das Blinken ist kein komplettes Spinnen, es
soll eigentlich gewollt zum Testen entstehen, wenn an Port D ein Pin
geschaltet wird...

von Alex Trusk (Gast)


Lesenswert?

schalten die taster nach gnd und sind die pullups an den eingaengen
aktiviert?

zeig mal den code...

von Hendrik G. (hndr)


Angehängte Dateien:

Lesenswert?

Also die Pullups müssten aktiviert sein (hab jedenfalls nichts bewusst
verändert) und die Taster schalten nach GND..

Bitte nicht über den Code lachen, bin Asm-Anfänger :D

von Alex Trusk (Gast)


Lesenswert?

ich kann zwar kein asm, aber fueg mal am anfang bei der initialisierung
das hier ein:
ldi r16, 0xff
out PORTD, r16

damit aktivierst du die internen pullups. ansonsten haenge die
eingaenge "in der luft" und nicht auf definiertem pegel. du faengst
dir wahrscheinlich ein 50Hz brummen ein...

von Alex Trusk (Gast)


Lesenswert?

haengen

von Hendrik G. (hndr)


Lesenswert?

Unglaublich, aber das Mysterium ist gelöst :D Vielen, vielen Dank! Das
war tatsächlich die Ursache...
Jetzt kann ich doch noch ohne Albträume schlafen!

von Alex Trusk (Gast)


Lesenswert?

zwar kein asm, aber die erklaerung:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_Ports

dann gute n8

von Hendrik G. (hndr)


Lesenswert?

Danke, ich les mir das mal später in Ruhe durch

von Alex Trusk (Gast)


Lesenswert?

noch spaeter? geh lieber schlafen :)
weiter unten in dem link kommt das entscheidende:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Tasten_und_Schalter

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.