atmega16 reagiert nicht auf Tastendruck

Gast #236177
Lesenswert?

Hallo,
ich habe mich mal ein mein erstes richtiges kleines µC-Programm
gewagt.
Soweit funktioniert alles, aber es erfolgt keine Reaktion auf Eingaben
(4 Taster). Entprellung ist eine andere sache, mir gehts dadrum dass er
überhaupt mal reagiert.

Im Anhang die relevanten Teile.
Die Pullups habe ich auch schonmal abgeschaltet.

Die Taster sollen Active High sein.
Habe sie so verschaltet: VCC---Taster---µC.
von µC nach GND habe ich auch schon 10k Widerstände ausprobiert.

Der µC reagiert einfach nicht.
Die for-Schleife mit dem Switch läuft korrekt.

Sieht jemand einen Fehler im Code? Simulation mit AVRStudio läuft so
wie es gedacht ist.

Gruß

Michael
Angehängte Dateien:
Gast #236178
Lesenswert?

> PORTD= 0xFF; //Pull-Up-Widerstände aktivieren
Ich nehme mal an, das ist jetzt PORTD= 0x00; Oder?
Dann sollten 10kOhm gegen Masse ausreichen, um sicheren 0-Pegel zu
erreichen.
Dann sollte das auch so gehen.

Gruss
Jadeclaw.
Gast #236179
Lesenswert?

das kann in die Hose gehen. Erstmal sind die Ports nicht immer wirklich
8bit breit, (2313 z.B.), ausserdem spielt der Wert vorhandener, aber
von dir nicht beachteter Ports eine Rolle.
Also besser so:

taster = PIND & 0x0f; //nur die unteren 4 Bits sind noch relevant
Gast #236180
Lesenswert?

Hi!
Danke für Eure Antworten! Also wenn es dieses Forum nicht geben
würde...

Ich habe meine Schaltung leicht geändert und die Taster als ActiveLow
gebaut, das spart die externen Widerstände und die unbelegten Pins
gehen durch die internen PullUps ja automatisch auf High.

Enprellt habe ich das Ganze durch
_delay_loop_2(0);
_delay_loop_2(0);
nach jedem Tastendruck. Ich weiß dass das nicht wirklich optimal ist,
aber es funktioniert genau so, wie es soll, und wenn man die Taste
gedrückt hält, wird der Befehl brav mehrfach ausgeführt.

Danke nochmal!

Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren