Mellem PORTB Bit5 og Bit2 er i serie
PORTB.5 - R220 - et ringetryk - R2.2K - PORTB.2
og når jeg benytter følgende asm-kode til at testen om der trykkes på "ringetrykknappen"
; sætter PORTB.5=Input og PORT.2=0 til FRYS-knappen TestFRYS clrf Frys ; FRYS flaget fjernes ; PORTB skal åbenbart sættes FØR ændring af TRISB movlw b'00100000' ; Bit7 er INDGANG movwf PORTB ; Sæt værdier på PORTB bsf STATUS,RP0 ; Set bitten = select Bank1 bsf TRISB,5 bcf STATUS,RP0 ; clear bitten = select Bank0 btfss PORTB,5 ; skip næste hvis PORTB.5 er sat incf Frys,1 ; sæt FRYS flaget til 1 return
Ja, så rejses Frys-flaget i linien "incf Frys, 1" SELV OM DER IKKE TRYKKES på "ringetryk" !
Når jeg indsætter et breakpoint på linien kan jeg se, at PORTB.5 faktisk er CLEARED - så mit problem må vel være, at jeg sætter PORTB forkert i starten af koden.
Hvordan sætter jeg PORTB.5 i starten af koden så den holder sin værdi til testen i linien "btfss PORTB,5" ?
Mvh KS