Kurzes Update, bzw. Themenabschluss:
Ich habe jetzt ein Array in mein Programm integriert, welches die drei Bytes der Portexpander erfasst. Nun schiebe ich über dieses Array und einen einzigen SPIOUT-Befehl meine Daten in die 4094-er.
Natürlich werden die Expander dem Array verkehrt herum zugewiesen, so dass sie dann richtigherum an den Expandern anstehen.
Im Prinzip ist die Lösung meines Problems sehr einfach gewesen und der Programmieraufwand war ebenfalls nur minimal.
Für alle, die es interessiert, füge ich nun noch die entscheidenen Codeschnipsel bei, damit die Nächsten dieses Problem hoffentlich einfacher lösen können!
Vielen Dank für Eure Hilfe!!
Code:
$regfile = "m8def.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 16
$framesize = 40
Baud = 19200
.
.
.
Config Spi = Hard , Master = Yes , Clockrate = 4
Enable Spi
Spiinit
.
.
.
Dim Expander(3) As Byte
Dim Expander1 As Byte
Dim Expander2 As Byte
Dim Expander3 As Byte
.
.
Do
.
.
Expander1 = Low(speicherwort)
Expander2 = High(speicherwort)
Expander3 = Low(eingangswort) (Den Expandern kann jeder erdenkliche Wert zugewiesen werden, der in eine Byte-Variable passt z.B. 169 oder es kann heißen Set Expander3.3 , etc.)
.
.
.
Expander(1) = Expander3 (Wie gesagt, hier wird das Pferd von hinten aufgesattelt.)
Expander(2) = Expander2
Expander(3) = Expander1
Spiout Expander(1) , 3 (Nur noch ein Spiout - Befehl. Macht das ganze auch wesentlich übersichtlicher)
.
.
Loop
End
Ich bedanke mich bei allen, die mir geholfen haben, das zu erkennen und zu verstehen!
Gruß
Peter
Lesezeichen