Am einfachsten ist für sowas eine Tabelle mit Port-Adresse und Pin-Maske
(sieht schräger aus, als es ist)
Code:PORT_TAB: DATA &H3B, 1 ' PORTA Pin 0 virtuell 0 DATA &H3B, 2 ' PORTA Pin 1 virtuell 1 DATA &H3B, 4 ' PORTA Pin 2 virtuell 2 DATA &H3B, 8 ' PORTA Pin 3 virtuell 3 DATA &H3B, 16 ' PORTA Pin 4 virtuell 4 DATA &H3B, 32 ' PORTA Pin 5 virtuell 5 DATA &H3B, 64 ' PORTA Pin 6 virtuell 6 DATA &H3B, 128 ' PORTA Pin 7 virtuell 7 DATA &H38, 128 ' PORTB Pin 0 virtuell 8 DATA &H38, 128 ' Port B Pin 7 virtuell 9 DATA &H38, 2 ' Pin 1 virtuell 10 DATA &H38, 128 ' Pin 7 virtuell 11 u.s.w. DATA &H35, 1 ' Port C Pin 0 virtuell xxx DATA &H32, 1 ' Port D Pin 0 virtuell xxxCode:DIM Portadr as byte DIM Portmsk as byte DIM Tabv as word at Portadr overlay DIM Temp as byte Temp = datenspeicher(3) Tabv = lookup ( temp, PORT_TAB) ' z.B. einzelnes PortPin setzen (die anderen nicht anrühren): Temp = INP ( Portadr) TEMP = TEMP OR Portmsk OUT ( Portadr, TEMP) ' z.B. einzelnes PortPin löschen (die anderen nicht anrühren): Temp = INP ( Portadr) Portmsk = Portmsk XOR &HFF TEMP = TEMP AND portmsk OUT ( Portadr, TEMP)







Zitieren

Lesezeichen