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.)
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.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
Gruß,
Stephan







Da würde ich mir das schreiben von endlosen Registern sparen. Kleiner Witz.
Zitieren

Lesezeichen