www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega16 reagiert nicht auf Tastendruck


Autor: Michael Gnotrer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Jadeclaw (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Gnotrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist NICHT optimal.

Suche mal in der Artikelsammlung nach "entprellung".

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.