Moin zusammen!
Ich möchte eine 8x8 Matrixtastatur an einen pic schalten und das ganze per c programmieren. die spaltenleitungen sollen an pin 0-3 von PORTB hängen, die zeilenleitungen an 4-7. Nun muss ich ja die Spalten als ausgänge definieren und auf high setzen, während die Zeilen als eingänge laufen und dann abwechselnd immer eine spalte auf low ziehen.

nun meine frage: wenn ich TRISB also mit B'00001111' initialisiere und danach per rotationsbefehl PORTB= 1111 1111 (alles high also auch die inputs) die 0 aus dem carryflag da durch schiebe, ändern sich die Pins mit den eingängen auch? will heißen wenn ich einen eingang in PORTB mit 1 beschreibe, ist ihm das egal und er zeigt dennoch den richtigen pegel an, jenachdem ob nun eine taste gedrückt ist oder nicht?oder bekommt er damit den pegel 1 und hält den auch?

ich hoffe das war verständlich ausgedrückt.
ich will mir ne routine in c schreiben die diese tastatur abfragt, aber es wird kompliziert wenn ich nur ein halbes byte ändern darf. wenn dem pic das egal ist, wird meine arbeit leichter.