Ich habe mir einen kleinen Entfernungssensor gebaut, der soweit auch schon gut funktioniert. Jetzt habe ich den Ausgang des Sensor an die RP6 Base angeschlossen. Wenn ich die Werte über den UART an den PC sende sind diese vollkommen korrekt. Wenn ich jedoch versuche via I2C den vom ADC0 gemessenen Wert am Display von dem M32 Erweiterungsboard anzuzeigen, bekomme ich nur Schrott angezeigt.
Anbei mein Code der Basis und der Erweiterung. Ich kann zwar keinen Fehler darin entdecken aber vllt findet jemand von euch einen.

Code:
 
#include "RP6RobotBaseLib.h"
#include "RP6I2CmasterTWI.h"


void I2C_transmissionError(uint8_t errorState)
{
	writeString_P("\nI2C ERROR - TWI STATE: 0x");
	writeInteger(errorState, HEX);
	writeChar('\n');
}


int main(void)
{ 
initRobotBase(); 
powerON();
writeString_P("Hallo"); //UART Test
writeChar('\n');
I2CTWI_initMaster(200); //I2C Master initialisieren
I2CTWI_setTransmissionErrorHandler(I2C_transmissionError);


while(1)
{
	uint16_t adc0 = readADC(ADC_ADC0); //ADC auslesen
	writeInteger(adc0, DEC);			// Wert via UART senden
	writeChar('\n');
	while(I2CTWI_isBusy()) // warten bis I2C frei ist
	{
	
	}
	if(!I2CTWI_isBusy())
	{
	
	I2CTWI_transmit2Bytes(10 ,adc0, (adc0 >> 8 )); //ADC  Wert in Lowbyte und Highbyte teilen und via I2C senden
	writeString_P("I2C hat was gesendet");			// Kontrolle dass etwas gesendet wurde
	writeChar('\n');
	}
	

	}
return 0;

}
Code:

#include "RP6ControlLib.h" 		
#include "RP6I2CslaveTWI.h"


int main(void)
{
	initRP6Control();

	initLCD();  //Display initialisieren
	 
	setLEDs(0b1010); 

	I2CTWI_initSlave(10); // Slave mit der Adresse 10 initialisieren
	writeString_P("I2C Init");	//UART testen
	writeChar('\n');
	showScreenLCD("Hallo","ADC:");	// Display testen
	uint16_t adcwert;
	
	uint8_t highbyte = 0;
	uint8_t lowbyte = 0;
	while(true) 
	{			
			
				if(I2CTWI_writeRegisters[0] && !I2CTWI_writeBusy)
				{
					lowbyte = I2CTWI_writeRegisters[0]; //lowbyte auslesen
					
					highbyte= I2CTWI_writeRegisters[1]; //highbyte auslesen
					
				}
				
				adcwert = ((highbyte << 8 ) | lowbyte);  // wieder zusammensetzen
				setCursorPosLCD(1,4);
				writeIntegerLCD(adcwert, DEC); // auf dem display ausgeben
				setCursorPosLCD(1,4);
				writeInteger(adcwert , DEC);
				writeChar('\n');
	}
	
	
	return 0;
}