Hallo, wenn ich deine Sub richtig lese, sollen hier die 4 byte übertragen werden, auch wenn du nur das erste Byte angibst. Das funktioniert aber nur, wenn eine Referenz auf das erste Element des Arrays angegeben wird. Also Rage_empire hat schon recht, dass du das mit byref übergeben musst.Zitat von mat-sche
Nur bringt das nichts, wenn du vor dem Call erst noch die Variable umsetzt. Da Komando1 nur eine Byte Variable ist, wird mit
Komando1 = Temperaturbyte(1) nur das erste Byte genommen und dessen Wert - nicht die Speicherstelle - in Komando1 gesetzt.
Was du machen musst, ist den Call ändern auf
Call Master_transmit(slave_adress , Temperaturbyte(1))
Mit byref übergibst du dann die Speicherstelle, an der das erste Byte der Overlay variable liegt.
In der Sub musst du dann genauso vorgehen, denn mit
Twi_mst_buff(1) = Komando1
verlierst du wieder die Speicherposition und übergibst nur den Wert. Damit setzt du dann eine ganz andere Adresse im Befehl
Twi_mt_data = Varptr(twi_mst_buff(1)).
Twi_mt_data soll ja tatsächlich auf das erste Byte der Single Variable zeigen.
Gruß
Rolf
Lesezeichen