Hallo Zusammen,
ich habe meinen Fehler/Problem immer noch nicht gefunden.
Im I2C Bus Treiber war noch ein Fehler, welcher aber keine Auswirkung hierauf haben könnte.
Diese Zeile fehlte. Hier würde der Treiber keine Antwort senden und das Protokoll würde Fehl laufen.Code:if(m_NumberOfBytesToSend > 0) { if( m_buffer_adr != NULL ) // Do we have a valid pointer { *m_buffer_adr=data; // Store the data into the buffer m_buffer_adr++; // Incr. Buffer address for the next byte } m_NumberOfBytesToSend--; // dec. counter of byte to send/recive if(m_NumberOfBytesToSend > 0) { TWCR_ACK; // we still have to receive bytes } else { TWCR_NACK; // we have all bytes received } } else { TWCR_NACK; // We have a Problem. All was send before }
Hat jemand noch eine Idee ?Code:else { TWCR_NACK; // We have a Problem. All was send before }
Edit:
Auf dem Hauptrechner des Roby lief noch ein Hintergrund Task, welche ein Kommando einmalig an den Controller gesendet hat.
Dumm, ich weiss.
Gruss
R.
Lesezeichen