Mit dem gezeigten Code, bzw. der Variablendimensionierung bezweifle ich, dass das überhaupt "so" ist.
Wenn Du nur ein Byte hast, kannst Du keine 3 Bytes schicken, bzw. Du kannst es versuchen und wirst scheitern. Schrieb ich bereits.
Wenn die Variablen in der gezeigten Reihenfolge dimensioniert sind:
dann führt das hier:Code:DIM Expander1 as Byte DIM Expander2 as Byte DIM Expander3 as Byte
dazu, dass als erstes das Byte Expander3, als nächstes aber noch 2 nachfolgende Bytes aus dem Speicher rausgeschoben werden. Nach dem Expander3-Byte kommen aber keine weiteren sinnvollen Daten, zumindest nach den gezeigten Codefetzen zu urteilen. Du schreibst also Datenmüll in die Schieberegister.Code:spiout expander3 , 3
Wenn man Datenmüll in die Register schreibt, wird aber ganz sicher nicht das hier passieren:
Wie PicNick schrieb, zeig vollständigen und compilierbaren Code, sonst ist das ein Stochern im Nebel. Eine Beschreibung der der Verbindungen 4094 untereinander/mit dem µC, bzw. ein Schaltplan wie die 4094 tatsächlich angeschlossen sind, würde sicher auch weiterhelfengeben die ersten beiden expander die richtigen bytes und der dritte zeigt mir das byte vom ersten expander.
Lesezeichen