Soooo,
jetzt habe ich mich mal ins Datenblatt des ATMega8 eingegraben, aber noch nicht schlauer:
Ich will 4 Bytes übertragen, wo muß ich die 4-fach Schleife einbauen und welche Statuscodes sind abzufragen (1Byte = A8 2. und 3. B8 letztes C8 ??)
Code:$regfile = "m8def.dat" ' the used chip $crystal = 16000000 ' frequency used Dim Left_array(2) As Byte Dim Speed_left As Word At Left_array Overlay Dim Right_array(2) As Byte Dim Speed_right As Word At Right_array Overlay Dim Cnt As Byte Dim Twi_control As Byte Dim Twi_status As Byte Declare Sub Twi_init Enable Interrupts Call Twi_init Do Speed_left = 12345 Speed_right = 54321 ' schauen ob TWINT gesetzt ist Twi_control = Twcr And &H80 ' Bit7 von Controlregister If Twi_control = &H80 Then Twi_status = Twsr And &HF8 ' Status anfordern ' will der Master ein Byte haben If Twi_status = &HA8 Or Twi_status = &HB8 Then Twdr = Left_array(1) ' neue Daten ausgeben End If ' TWINT muss immer gelöscht werden, damit es auf dem Bus weiter geht Twcr = &B11000100 ' TWINT löschen, mit ACK End If Loop Sub Twi_init Twar = &H70 Twcr = &B01000100 Twsr = 0 Twdr = &HFF End Sub







Zitieren

Lesezeichen