Hallo, Auf welches Codestück beziehst Du Dich da?
Ich habe Dein letztes Programm von hier gesehen:
Dort fehlt noch ein Return in der ISR. Aber funktioniert das oder nicht?Der Code sieht bislang so aus (nach meinem letzten Post geschrieben):
Es sollte funktionieren, es sei den die höherwertigen Bits (Bit 5, 6, 7) sind nicht 1. Dadurch, daß in deinem letzten Programm die Pullups eingeschaltet sind, sollten diese Bits auf 1 stehen, so wie Du sie auch im Select-Case abfragst.
Die Leitungen (PA5, PA6, PA7) brauchen/sollten nicht angeschlossen werden, da sie durch die Pullups auf definiertem Pegel liegen. Es schadet auch nichts, sie durch eine extra Variable auf 0 zu setzen wie hier:
Programmwahl = PINA
Programmwahl = Programmwahl AND &B00011111 '(natürlich bei Case berücksichtigen)
Sollen die auf 1 gesetzt werden geht es mit der ODER Verknüfung:
Programmwahl = Programmwahl OR &B11100000
Bitte poste beides, das was geht und das was nicht geht.
Das was passieren soll ist, daß der Wert aus Register PINA in die Bytevariable übertragen werden. Das mußßß gehen.Die Eingangsports können nicht an eine Variable übergeben werden.![]()
Wie schon gesagt, bitte poste beide Varianten, die funktionierende und die nicht funktionierende.Wenn ich die Variable entsprechend als Byte deklariere und dem Port mit "Programm = PINA" zuweise, kann ich machen was ich will - das Register reagiert nicht auf Tastenbefehle. Schreibe ich allerdings z.B. "If PinA.0 = 0 then ...etc.pp", dann klappt alles.
Gruß
Searcher
Lesezeichen