So hier Code des Tests, der sehr viele Fehler bringt:
Code:
void TestI2CLEDs(void)
{
	TestStart("I2CLED Test"); //Unwichtig, dient nur der Kommunikation mit Remotrol
	uint8_t testResult = 1;
	
	uint8_t runningLight = 1;
	uint16_t cnt;
	uint16_t errorcount = 0;
	for(cnt = 0; cnt < 2400; cnt++) //"400 Durchläufe
	{
		writeIntegerLength(cnt,DEC,3);  //Aktuelle Werte ausgeben
		writeChar(':');
		writeIntegerLength(runningLight,DEC,3);
		writeChar(',');
		writeChar(' ');

		setRP6LEDs(runningLight);   //RP6 LEDs über I2C setzen
		//mSleep(50);                     //Hierran scheitert es prinzipiell, es wäre aber sehr schön, wenn man solche Delays nicht brauchen würde
		I2CTWI_transmitByte(I2C_RP6_BASE_ADR, 29);       //Aktuelle LEDs des RP6 wieder auslesen
		uint8_t result = I2CTWI_readByte(I2C_RP6_BASE_ADR);
		if(result != runningLight) 
		{
			writeString_P("\nTWI TEST FEHLER!\n");
			writeString_P("Value: ");
			writeInteger(runningLight,DEC);
			writeString_P(" - Result: ");
			writeInteger(result,DEC);
			writeString_P("\r\n");
			errorcount++;
			testResult = 0;
		}
		runningLight <<= 1; 
		if(runningLight > 32) 
			runningLight = 1;
	
		if((cnt+1) % 6 == 0) writeChar('\n');
		
		if(cnt % 20 == 0)//Unwichtig, dient nur der Kommunikation mit Remotrol
		{
			SerialHeartBeat();
		}
		
		//mSleep(100);
	}
	if(!testResult)
	{
		writeString_P("Anzahl Fehler: ");
		writeInteger(errorcount, DEC);
		writeString_P("\r\n");
	}
	setRP6LEDs(0);
	
	TestEnd(testResult);//Unwichtig, dient nur der Kommunikation mit Remotrol
}
Das Problem an sich ist klar... Er überrent halt dauerhaft die Hardware.
Es wäre aber prinzipiell sehr schön, wenn man die statischen Delays hier weglassen könnte.
Dann wäre die Lib perfekt