Hallo Rolf,
hier ein Schnipp:
procedure IOPort_setPin(io_port_pin : byte);
var
port, pin : byte; // port and bit number
begin
port := (io_port_pin and %00111111) div 8; // port number
pin := (io_port_pin and %00111111) mod 8; // bit number
case port of
{$IFNDEF P11_XMEGA}
0 : setbit(PortA, pin, bit(io_port_pin, 7));
|
1 : setbit(PortB, pin, bit(io_port_pin, 7));
|
2 : setbit(PortC, pin, bit(io_port_pin, 7));
|
3 : setbit(PortD, pin, bit(io_port_pin, 7));
|
{$IFDEF P06_ELAB_AT90CAN128}
4 : setbit(PortE, pin, bit(io_port_pin, 7));
|
5 : setbit(PortF, pin, bit(io_port_pin, 7));
|
6 : setbit(PortG, pin, bit(io_port_pin, 7));
|
{$ENDIF}
{$IFDEF P06_ELAB_MEGA128}
4 : setbit(PortE, pin, bit(io_port_pin, 7));
|
5 : setbit(PortF, pin, bit(io_port_pin, 7));
|
6 : setbit(PortG, pin, bit(io_port_pin, 7));
|
{$ENDIF}
{$ENDIF}
endcase;
end;
Viele Grüße,
Analog
(XMEGA ist gerade durch IFNDEF herausgenommen, weil das Compilieren nicht klappt.)