Ich bekomme einfach keine Signale vom Portexpander. Raus gar kein Problem. Irgendwie erschließt sich mir die Logik des Registerwarterloo nicht ganz so. Können die nicht einen Kippschalter oben an des DIP gehäuse dranmachen. Da würde ich mir das schreiben von endlosen Registern sparen. Kleiner Witz.

Also wer von Euch Spitzenkräften kann mir bei meinem Problem helfen?

Nich alle auf einmal

Hier erstmal der Code. (Ist das Bascom Beispielprogramm ein wenig in die länge gezogen. Ich teste erst alle Einzelschnittstellen bevor ich den Hauptcode schreibe.)

Code:
Dim B As Word
Dim A(10) As Byte
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.5 = Output
Config Pinb.6 = Input
Config Pinb.7 = Output

Open "com1:" For Binary As #1
Spiinit

' MCP23S17 Register  RO=ReadOnly
' Adresse 00 01  IODIR   Richtung Port a/b 0=Output 1=Input
' Adresse 02 03  IPOL    Polarität 1=umgekehrt
' Adresse 04 05  GPINTEN Interrupt aktivieren 1=an 0=aus
' Adresse 06 07  DEFVAL  Vergleichsregister für Interrupt
' Adresse 08 09  INTCON  1=PIN<->DEFVAL 0=PIN neu <->PIN alt
' Adresse 0A 0B  IOCON   Configuration
' Adresse 0C 0D  GPPU    PullUp 1=aktiv 0= aus
' Adresse 0E 0F  INRF    Interrupt Flag register RO
' Adresse 10 11  INTCAP  Interrupt Capture Register RO
' Adresse 12 13  GPIO    Port Werte RW
' Adresse 14 14  OLAT    Output Latch Register

' Ausgabe klappt wie Teufel
Portb.0 = 0                         'Reset
Waitus 100
Portb.0 = 1

A(1) = &B01000000                                           'Richtung Porta
A(2) = $00
A(3) = $0
A(4) = $00
Spiout A(1) , 4
A(1) = &B01000000                                           'PullUp
A(2) = $0c
A(3) = $00
A(4) = $00

For B = 0 To &B1111111111111111
A(1) = &B01000000                                           'Ausgänge ansteuern
A(2) = $12
A(3) = High(b)                                              ' Port A gleich MSB von B
A(4) = Low(b)
                                                ' Port B gleich LSB von B
Spiout A(1) , 4
Next B


Portb.0 = 0                                 'Reset
Waitus 100
Portb.0 = 1





'Ab hier still ruht der See!!
Test:
A(1) = &B01000000                                           'Richtung Porta
A(2) = $00
A(3) = $ff
A(4) = $ff
Spiout A(1) , 4
A(1) = &B01000000                                           'Polarität umkehren
A(2) = $02
A(3) = $ff
A(4) = $ff
Spiout A(1) , 4
A(1) = &B01000000                                           'PullUp
A(2) = $0c
A(3) = $ff
A(4) = $ff
Spiout A(1) , 4
A(1) = &B01000001                                           'Ausgang PORTA/B lesen
A(2) = $12
Spiout A(1) , 2
Spiin A(1) , 2

Print #1 , A(1) ; A(2)

Goto Test
Waitus 100
End
Danke für Eure Hilfe. Kommentieren ist nicht so meine stärke bin eher Küchenprogrammierer. Erst den Code haben dann strukturieren, da bekommt jeder Informatiker einen Mittelschweren Ausraster.

Gruß,

Stephan