www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4x3 Matrix Tastatur über I²C I/O Expander ansteuern


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Weiß jemand von euch, wie ich eine 4x3 Matrixtastatur mit einem PCF574
I/O I²C-Expander abfragen kann, da ich keine normalen Ports mehr frei
habe? - ich brauche das ganze in C (WinAVR).

Danke scho mal für eure antworten, codes, ideeen, etc.

s.T.,
Max

Autor: Peter Dannegger (peda)
Datum:

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

Autor: Florian Pfanner (Gast)
Datum:

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

Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde die neue "Sitte" einfach nur dreist !!!

Autor: Max (Gast)
Datum:

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

Autor: Fiffi (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

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

Autor: Rahul (Gast)
Datum:

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

Autor: Manfred Glahe (Gast)
Datum:

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

Autor: Max (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steht drin:

7.3 Quasi-bidirectional I/Os (see Fig.14)


Und hier im Forum hats mal jemand sehr schön ausführlich erklärt.


Peter

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.