taste 1 --> bit0 (portd) wird gesetzt = funktion gegeben.definiere mist: drücke 1 und 4 was passiert??
taste 4 --> bit3 (portd) wird gesetzt = funktion gegeben.
wird aber nach der Taste 1 die Taste 4 gedrückt, springt die anzeige von bit 0 auf bit 3. = falsch bit 0 und 3 sollten high sein.
2. beispiel.
taste 2 --> bit1 (portd) wird gesetzt = funktion gegeben.
taste 5 --> bit4 (portd) wird gesetzt = funktion gegeben.
wird aber nach der Taste 2 die Taste 5 gedrückt, geht die anzeige aus (alles low). = falsch bit 1 und 4 sollten high sein.
wieso bekomme ich einen Kurzschlüß?spalten werden durchgeschaltet und Zeilen ausgelesen. wenn du jetzt zwei taster in der zeile drückst bekommst du ohne dioden einen kurzen. (port 0 auf high port 1 auf low und diese beiden sind durch die zwei taster und ein zeilenstück verbunden.
ich definiere doch nur die gerade abgefragte Spalte als Ausgang mit logisch 0, alle anderen spalten werde als Eingang definiert und haben dank der integrierten und aktivierten pull up wiederstände des PORTB logisch 1 signal. dies sollte doch einen Kurzschluß verhindern bei mehr als 2 Tasten in einer Zeile.
beispiel zeile 3 (funktioniert)
taste 7 und taste 8 werden auch bei demeinsamen drücken richtig dargestellt. (bit 6 und 7 von portD sind high.
zeile 1 (mist)
anzeige geht aus beim drücken einer weiteren taste.
jede Taste setzt ja ein bit in der Variablen scan jede neue taste wird mit scan verodert. klappt leider nicht bei allen tasten.Wenn jede Taste einen eigenen Bit setzen würde, sollte auch keine Probleme bei gleichzeitig gedrückten Tasten in einer Zeile geben.
2 Tasten abzufragen, das muss doch auch ohne Dioden oder Interrupts gehen. habe das auch mehrmals schon gelesen, leider hapert es an meiner Umsetzung.
hilfe
Lesezeichen