Moin zusammen, seit Freitag habe ich mein eigenes µC-Versuchsboard fertig. Kleine Info zur Hardware (die Probleme macht): An PB0 - PB4 habe ich jeweils einen Taster angeschlossen. Diese sind nach folgendem Schema angeschlossen: µC <> Taster <> +5V 10k gegen Masse als Pulldown (im Plan noch 100k) 100n gegen Masse. In der Software habe ich die Taster in der main.h bequemerweise vordefiniert -> #define Taster_1 (PINB & (1 << PB0)) usw... bis PB5 Die Eingänge sind (ich weiß nicht genau, ob das überhaupt nötig ist), nochmals als Eingang definiert -> DDRB &= ~((1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3) | (1 << DDB5)); Nun hat sich folgendes Phänomen ergeben: Wenn ich die Tasten drücke (egal welchen), soll in meinem Beispiel-Code lediglich ein Relais anziehen. Das geht auch. Jedoch hatte ich spaßeshalber in der int(main) einfach ganz am Anfang ein Relais anziehen lassen und nach 2 Sekunden wieder abfallen lassen, bevor es in die while(1) geht... Wenn ich nun den Taster drücke, geht das entsprechende (andere) Relais ein. Dies geht auch ein paar Mal gut. Jedoch scheint dann irgendwann der Controller dann wieder vorn vorne anzufangen, sprich das Relais aus der int(main) geht wieder für 2 Sekunden an und anschließend aus. Das ist mit allen 5 Tastern der Fall. Nun habe ich zum Testen einen anderen Taster (an PC7) angeschlossen und entsprechend wie die anderen Taster konfiguriert: Dieser ist ohne Pull-Down-Widerstand und Kondensator beschaltet. Egal wie häufig ich diesen drücke, das Relais, was nur einmal anziehen soll (aus der int(main) ) zieht nicht an, sprich der Controller scheint sich damit nicht zu resetten. Die Pegel an allen Tastern (auch dem "Test"-Taster sehen gut aus, die habe ich mit einem Scope nachgemessen. Der High-PEgel am Reset-Eingang des Mega32 ändert sich auch nicht, wenn das Relais wieder anzieht, obwohl es gar nicht anziehen soll. Hat einer von euch eine Idee, wo da nun der Wurm drin ist!?
>Hat einer von euch eine Idee, wo da nun der Wurm drin ist!?
Mach die 100n an den Tastern weg.
Okay, kann das nun gerade nicht ausprobieren, da ich nicht zu hause bin. Wie kann man das elektrisch begründen, wenn sich damit mein Problem in Luft auflöst? :)
Daniel schrieb: > Wie kann man das elektrisch begründen, wenn sich damit mein Problem in > Luft auflöst? :) Die Kondensatoren werden durch den parallelen Widerstand auf 0 Volt entladen. Den Kondensator wirkt bis er geladen ist, wie ein Kurzschluss. Wenn du den Taster drückst schließt du für kurze Zeit dein +5V kurz.
M o b b y, wo bist du??? Anstatt in den ARM threads zu trollen, solltest du hier helfen. Aber du hast weder vom ARM noch vom AVR die leiseste Ahnung. Armer Mobby. :'(
Warum nutzt du nicht die internen Widerstände vom Controller? Leg die Kondensatoren parallel zum Taster und nicht in Reihe. Warum? Siehe http://www.mikrocontroller.net/articles/Entprellung#Prellfreie_Schalter Es schadet nicht ein paar Kondensatoren zum Stützen der Versorgung auf der Platine zu verteilen. Obst bricht die Spannung noch an deren Stellen zusammen.
Guten Morgen, ich habe gerade euren Vorschlag ausprobiert und die 100n´s entfernt. Leider ohne Erfolg. Ich habe noch nie die internen Widerstände verwendet, warum weiß ich auch nicht. Hat sich damals so ergeben, und diese "Angewhnheit" sitzt nun drin. Bisher gab es damit auch nie Schwierigkeiten. Eine andere Spannungsversorgung habe ich auch schon dran gehängt, jedoch brachte das auch nichts.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.