Hallo Günter,
das ist ungetestet, sollte aber so funktionieren:
Edit: jetzt mal den Master 4 Bytes abholen lassen...Code:$regfile = "m8def.dat" ' the used chip $crystal = 16000000 ' frequency used Dim Data_array(4) As Byte Dim Speed_left As Word At Data_array Overlay Dim Speed_right As Word At Data_array + 2 Overlay Dim Cnt As Byte Dim Twi_control As Byte Dim Twi_status As Byte Dim I As Byte Declare Sub Twi_init Enable Interrupts Call Twi_init Speed_left = 12345 Speed_right = 54321 Do Twi_control = Twcr And &H80 ' Bit7 von Controlregister auslesen If Twi_control = &H80 Then Twi_status = Twsr And &HF8 ' Status ->Bit3 bis Bit7 Select Case Twi_status Case &H60 : 'Wir sind gemeint Twcr = &B11000100 ' TWINT löschen, erzeugt ACK Case &HA8: 'Master will Byte haben I = 1 Twdr = Data_array(i) Twcr = &B11000100 Case &HB8: 'Master Will Weiteres Byte Haben Incr I Twdr = Data_array(i) Twcr = &B11000100 End Select End If Loop Sub Twi_init Twar = &H70 Twcr = &B01000100 Twsr = 0 Twdr = &HFF End Sub







Zitieren

Lesezeichen