PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port Gegen Port schalten HILFE



Benne_87
17.02.2013, 21:41
Hallo,

Ich bin mir nicht sicher ob das hier rein gehört, aber ich habe sonst nichts passenderes gefunden.

Ich habe folgendes Problem.
Für eine Tastermatrix müssen Ports Gegen Ports geschalten Werden.
Wäre super wenn mir Jemand helfen könnte und eventuell ein Kleines Prog dazu Schreiben kann.
Die Programmierung ist in cbas geschrieben.

Schonmal danke

radbruch
17.02.2013, 22:35
Hallo

Beim Abfragen einer Tastenmatrix schaltet man Widerstände dazwischen um einen direkten Kurzschluss zu vermeiden. Ein Beispiel:

http://www.sprut.de/electronic/pic/grund/tasten/16tast.gif
(Bild von http://www.sprut.de/electronic/pic/grund/tasten/tasten.htm#tasten)

Das ist zwar ein PIC, aber das Prinzip ist bei den AVR dasselbe.

Zur Abfrage: Zu Beginn sind alle Pins Eingang,10 bis 13 zusätzlich mit internem PullUp. Nacheinander werden dann jeweils Pin 6 bis 9 Ausgang und Low und der Pegel von Pin 10 bis 13 wird eingelesen. Wird bei auf Low geschalteter Spalte ein Taster gedrückt erscheint das Low auch in der betreffenden Zeile am Eingang des µC.

Gruß

mic

Benne_87
17.02.2013, 22:48
Vielen Dank für die schnelle Antwort. Werd ich gleich mal ausprobieren.

Danke
greetz Benny

Besserwessi
18.02.2013, 18:35
Beim AVR kann man auch alternativ zu den Widerständen die internen Pullup Widerstände nutzen. Die Hälfte der Port-Pins dient als Eingänge mit aktivem Pullup. Von der anderen Hälfte der Pins ist nacheinander jeweils einer als Ausgang auf Low, die anderen sind als Eingang geschaltet. Es ist also zu jeder Zeit immer nur 1 IO-Pin auf Ausgang, so dass man nie eine Problem mit dem gegeneinander hat.

Benne_87
20.02.2013, 22:02
Ist auch eine Idee.
Hab erst gestern Abend Zeit gehabt zum schreiben, hat aber super funktioniert.
Nochmal danke euch beiden