Hallo kalledom!
Ich habe es jetzt so:
Code:
@RAM movlw 0x9E <- hier wird auf RC2 und RC3 als Eingänge umgeschaltet
movwf TRISC
goto $+2 <- hier wird 3xNOP abgewartet (3x0.1µs bei 40MHz PLL/4)
movf PORTC,0
andlw 0x0C
btfss _Z
goto @Out <- hier wird zurück RC2 und RC3 auf Ausgänge umgeschaltet falls die beiden Taster H sind
movlw 0x92 <- hier wird auf Ausgänge zurückgeschaltet falls die beiden Taster L sind und weiter gelaufen
movwf TRISC
movff DTmp6,STmp6 ; aktives Display sichern
movlw 2 ; Display2
movwf DTmp6 ; aktivieren
lfsr FSR2,0x060
call @2nd
call @Line
call @4th
call @Line
movff STmp6,DTmp6 ; aktives Display wiederherstellen
@Out movlw 0x92 <- bei diesem Wert arbeitet Display mit RC 2 und RC3 als Ausgänge
movwf TRISC
return
und es funktioniert.
Vorher habe ich so erfolglos versucht:
Code:
@RAM movf TRISC,0
iorlw 0x0C <- hier wird auf RC2 und RC3 als Eingänge umgeschaltet
movwf TRISC
movf PORTC,0
andlw 0x0C
btfss _Z
goto @Out <- hier wird zurück RC2 und RC3 auf Ausgänge umgeschaltet falls die beiden Taster H sind
call @Out <- hier wird auf Ausgänge zurückgeschaltet falls die beiden Taster L sind und weiter gelaufen
movff DTmp6,STmp6 ; aktives Display sichern
movlw 2 ; Display2
movwf DTmp6 ; aktivieren
lfsr FSR2,0x060
call @2nd
call @Line
call @4th
call @Line
movff STmp6,DTmp6 ; aktives Display wiederherstellen
@Out movf TRISC,0
andlw 0xF3
movwf TRISC
return
Dort, wo jetzt goto $+2 (quasi 3xNOP) ist, habe ich vorher bis zu 10xNOP
probiert und hat´s nicht funktioniert. Für mich geht eindeutich die Änderung des TRIS Registers mit OR und AND nicht.
Vielleicht fällt Dir was ein ?. Ich habe damit kein Problem mehr.
Schöne Grüsse !
Lesezeichen