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
SlaveCode:$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
Habt Ihr zwei ne Idee?? Arbeite mit der neuesten Bascom Version und dr TWI-Slave lib.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
Merci
Gruß







Zitieren

Lesezeichen