Hallo, ich wollte eine Schaltermatrix machen. Allerdings bin ich mir nun unschlüssig, ob diese nicht einen Kurzschluss produzieren kann. Ich habe ein Bild angehängt, das sagt wohl mehr als 1000 Worte. In Grün der Sollzustand: Ich drücke S3 und kann ihn dann abfragen. In Rot: Wenn ich allerdings gleichzeitig S4 drücke. Dann hätte ich doch einen Kurzschluss bzw. könnte S3 garnicht auslesen? Falls ich da jetzt keinen Denkfehler drin habe... würde dem eine Diode wie eingezeichnet abhelfen? Oder andere Lösung: vielleicht kann mir da zufällig jemand helfen: Ich benutze zum auslesen einen PIC. Im Datenblatt ist die rede von PORTB als Tri-State. Allerdings konnte ich nur finden wie man ihn als Tri-State konfiguriert, nicht jedoch wie man den "Tri"tten state setzt? Aber würde mir das auch helfen? MfG
Eee E. schrieb: > Tri-State. Allerdings konnte ich nur finden wie man ihn als Tri-State > konfiguriert, nicht jedoch wie man den "Tri"tten state setzt? Den setzt du nicht. Ein Pin der als Tri-State konfiguriert ist, treibt selbst die Leitung nicht auf Low oder High, sondern nimmt den zustand an, die die Leitung vno Aussen vorgibt. In µC Chargon ist das ein Eingang ohne Pullup oder Pulldown Widerstand. Und so löst sich dann auch das Rätsel um deine Dioden. Du brauchst sie deswegen nicht, weil nur die Leitung, die du mit High bezeichnet hast auf aktiver Ausgang gesetzt ist. Alle anderen Port-Leitung werden auf Tri-State (also auf Eingang konfiguriert) und teiben somit keinen Pegel auf die waagrechten Leitungen, sondern die Leitung und der µC Pin kann den Pegel annehmen, der sich aus der restlichen Verschaltung ergibt. Deine mit low markierten Leitungen sind also in Wirklichkeit nicht low, sondern an diesen Leitungen wird vom µC kein Pegel vorgegeben. PS: Je nachdem ob dein µC Pullup oder Pulldown Widerstände zuschalten kann, musst du eventuell die Logik umdrehen. Ich kenn die PIC nicht, daher weiß ich nicht ob die Pulldown Widerstände haben. Wenn es so ist, wie beim AVR, dass nur Pullup Widerstände zur Verfügung stehen, dann treiben diese Widerstände die Eingangsleitungen bei offenem Taster nach High. Du setzt dann die dich interessierende Zeile auf Low und nicht nach High, damit ein geschlossener Taster die zugehörige Eingangsleitung auf Low ziehen kann.
> wie man ihn als Tri-State
Einfach als Eingang schalten.
Um die von dir angesprochenen Kurzschlüsse auch ohne Dioden zu
verhindern,
macht man folgendes:
Alle Eingänge von den Zeilen bekommen ihren PullUp eingeschaltet.
Von den Ausgängen zu den Spalten wird nur EINER auf Masse geschaltet,
die anderen Ausgänge schaltet man TRI-State in dem man sie einfach als
Eingang schaltet - zur Vermeidung unerwünschter Zustände ebenfalls mit
aktiviertem PullUp. Es ist also nur EIN Ausgang geschaltet, und der ist
LOW.
Und schon ist alles ohne zusätzliche Bauteile gelöst.
Also wenn der PIC Port als Input definiert ist habe ich die HiZ die ich für die Matrix brauche? Und nur wenn ich den Port als Ouput definiert habe, ist er je nachdem ob low oder high, mit Vdd bzw Vss verbunden? Dann scheint mir das glaube ich logisch. Danke.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.