[AVR Atmega16 Assembler] Ansteuerung einer 3 * 4 Matrixtastatur

Gast #1064490
Lesenswert?
• ▲
▼
Hallo,

ich habe beschlossen ein Codeschloss mit einem AtMega16 in Assembler zu 
realisieren. Mit der Displayansteuerung komme ich recht gut klar nur 
beim Auslesen der 4 * 3 Matrixtastatur
scheitere ich noch.

Also der jetzige Stand ist so das sich eine Spalte und die 4 Zeilen 
darin komplett auslesen und unterscheiden kann. Mit den restlichen 
Spalten klappt es jedoch noch nicht.
Es kann nur eine Kleinigkeit sein. Aber irgendwie übersehe ich es.

Zur Verdrahtung:

PORTA = Display

PORTD = LED (später Türöffner) und die Matrixtastatur
PD7 = LED
PD6 = Vertikal 1
PD5 = Vertikal 2
PD4 = Vertikal 3
PD3 = Vertikal 4
PD2 = Horizontal 1
PD1 = Horizontal 2
PD0 = Horizontal 3

Im Forum und im Netz hab ich bereits gesucht und mich an dieser Seite 
orientiert: http://avr-asm-tutorial.net/avr_de/keypad/keyboard.html
(Die Verdrahtung natürlich entsprechend geändert).

Wäre toll wenn mir jemand weiterhelfen könnte. Vielen Dank :-)

Gruß
MS


PS.: locate und printbin sind Makros des LCD-Treibers. Den relevanten 
Sourcecode hab ich angehängt.
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.