4x3 Matrix Tastatur über I²C I/O Expander ansteuern

"ich brauche das ganze in C"

Ach, was ich nicht so alles brauche.
Aber ich trau mich nicht, rotzfrech nach fertigem Code zu fragen.
Ich mache mir immer erst eigene Gedanken und frage dann konkret, wenn
es bei irgendeinem Punkt Probleme gibt.


Peter
Gast
Von Atmel gibts eine App-Note, in der sowas beschrieben ist. Jedoch
direkt am Controller. Wenn du das ganze kapiert hast, dann dürfte es
kein Problem sein, das für deinen Anwendungsfall umzustricken.

Gruß, Florian
Gast
gg ojee..

ich hab mir schon gedaken zu dem thema gemacht: und zwar wollte ich an
einer spalte einen high pegel anlegen und alle zeilen abfragen, und das
mit jeder spalte. das problem ist nun, dass ich per I/O Expander die
ganzen 8 bit nur als eingan bzw. ausgang schalten kann und nich ein
paar pins als eingang und ein paar als ausgang. die frage ist nun, wie
ich es trotzdem irgendwie hinbekommen kann oder ob es eine andere
technik gibt.

mfg
Max
Gast
Hallo Max,

>ich hab mir schon gedaken zu dem thema gemacht:

1. der IC heißt "PCF8574" und nicht "PCF574".

>das problem ist nun, dass ich per I/O Expander die
>ganzen 8 bit nur als eingan bzw. ausgang schalten kann
>und nich ein paar pins als eingang und ein paar als ausgang.

Falsch! RTFM !!!


Gruß

Fiffi
"das problem ist nun, dass ich per I/O Expander die
ganzen 8 bit nur als eingan bzw. ausgang schalten kann und nich ein
paar pins als eingang und ein paar als ausgang"

Wo hast Du denn das her ?

Bestimmt nicht aus dem PCF8574 Datenblatt.


Peter
Gast
Damit könnte man sogar problemlos eine 8x8-Matrix herstellen.
Notfalls nimmt man den einen Port als Eingang und den anderen als
Ausgang.
Nach der AVR240-Application Note (müsste die "wake-up-Key-Matrix"
sein) teilt man einen Port in High-Nibble und Low-Nibble.
Jeweils eins ist Eingang und eins ist Ausgang.
Für die Spaltenabfrage die beispielsweise das H-Nibble als Eingang und
das L-Nibble als Ausgang, und für die Zeilenabfrage andersherum.

Naja, lesen bildet...
Gast
Hallo Max,

"ich brauche das ganze in C (WinAVR)."

Für mich ist das eine vernünftige Einschränkung, voreilige
Unterstellungen wegen unglücklicher Fragestellungen übergehe einfach!
Lass Dich bloß nicht von einigen arroganten Leuten davon abhalten
Fragen zu stellen!
Niemand wird gezwungen sich zu äußern!
Richtig dusselig finde ich es, wenn man nach C fragt und chinesisch als
Antwort bekommt (habe ich alles schon erlebt).

MfG  Manfred Glahe
Gast
Das Datenblatt des PCF8574 hab ich schon gelesen, aber hab keinen
Hinweis darauf gefunden, wie man ein teil des Ports als eingang und
einen teil als ausgang definiert. kann mir jemand bitte sagen, wie ich
das mache? (bitte um sinnvolle antworten, v.a.v. peter dannegger +
Fiffi).

Danke schon mal.

s.T.
max
Ich bin mir zwar sicher, daß das im Datenblatt steht, aber such mal hier
im Forum oder bei Google unter dem Stichwort "open collector" bzw.
"open drain", was das bedeutet und wozu es gut ist.

Das gleiche Prinzip findet nämlich im PCF8574 Anwendung und daher gibt
es dort keine Umschaltung zwischen Eingang und Ausgang.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.