Problem mit ATmega32

Gast #3638908
Lesenswert?
• ▲
▼
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!?
Angehängte Dateien:
Gast #3639490
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.