Hallo Ihr zwei,

war schon länger nicht mehr hier...

Mir ist irgendwie der HW TWI auch lieber nur schnalle ich das nicht mit der Long/array geschichte.

Hier der Code. Mit dem einzelnen Byte gehts wunderbar, mit dem Array nicht.

Master
Code:
$regfile = "M8def.dat"
$crystal = 3686000
$baud = 9600

$lib "i2c_twi.lbx"

Config Timer1 = Timer, Prescale = 8
Const Timervorgabe = 19456
Config Lcd = 20 * 4
Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.2 , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4

Config Scl = Portc.5
Config Sda = Portc.4

I2cinit

Config Twi = 100000


Declare Sub Datenholen
Declare Sub Zeittakttimer1



Dim B As Byte
Dim C As Byte
Dim D As Long
Dim Buf(4) as Byte
'***** geht nicht************
Dim Buf(4)as Byte at D overlay
'**************************

Dim Ttakt As Byte


Ttakt = 0
B = 0

Cls
Cursor Off

Enable Timer1
Enable Interrupts

On Timer1 Zeittakttimer1

Locate 1 , 1
Lcd "TWI master"

Do





If Ttakt = 5 Then Gosub Datenholen

Locate 2 , 1
Lcd "Startzeichen: " ; Chr(32) ; Chr(32) ; B ; Chr(32) ; Chr(32)

Locate 3 , 1
Lcd "Wert: " ; Chr(32) ; Chr(32) ; C ; Chr(32) ; Chr(32)
Locate 4 , 1
Lcd "Error : " ; Err

Incr B

Loop



Datenholen:

I2creceive &H40 , Buf(1) , 0 , 1
C = Buf(1)
B = 0
Ttakt = 0

'***das geht nicht*********** 
I2creceive &H40, Buf(4), 0, 4
C = Buf(1), 4
B=0
Ttakt =0
'*************************
Return

Zeittakttimer1:
Incr Ttakt
Timer1 = Timervorgabe
Return


End
Slave
Code:
$regfile = "m8def.dat"
$crystal = 7372800
' $baud = 9600
$lib "i2c_twi-slave.lbx"

Config Pinc.0 = Output                                      'LED1
Config Pinc.1 = Output                                      'LED2

Config Twislave = &H40, Btr = 2, Bitrate = 100000


Config Scl = Portc.5                                        ' Ports fuer IIC-Bus
Config Sda = Portc.4

Enable Interrupts

Dim C As Byte

'******geht nicht*******
Dim C as Long
Dim D(4) as Byte at C overlay
'*************************

C = 0
D=0

Do

Portc.1 = 1
Incr C
Incr D
Waitms 25
Portc.1 = 0
Waitms 25
Loop


'i2c Twi Sub
'--------------------------------
Twi_stop_rstart_received:

Return
'--------------------------------

Twi_addressed_goread:

Return
'--------------------------------

Twi_addressed_gowrite:
Portc.0 = 1
Twi = C
'*****geht nicht*****
Twi = D(1) , 4
'******************
Portc.0 = 0
Return
'--------------------------------

Twi_gotdata:

Return
'--------------------------------


Twi_master_needs_byte:

Return
'--------------------------------

Twi_master_need_nomore_byte:

Return





End
Habt Ihr zwei ne Idee?? Arbeite mit der neuesten Bascom Version und dr TWI-Slave lib.

Merci
Gruß