Hi,
ich versuch schon seit Stunden den Sensor auszulesen, aber bekomme einfach keine Antwort.

Vielleicht übersehe ich die ganze Zeit den Fehler, vielleicht ist der Sensor aber einfach defekt.

Hier der Code:

Code:
void Sensortest() 
{
unsigned char xl,xm,yl,ym,zl,zm;

xl=0;xm=0;yl=0;ym=0;zl=0;zm=0;x=0;


while(1)
{
		if(!(i2c_start(0x70)))   	// start I2C bus   
	   		{
			i2c_write(2);		 	// register  
		
		  	i2c_rep_start(0x70+I2C_READ);      	// restart         
		   	xl = i2c_readAck();   
		   	xm = i2c_readAck();
			   yl = i2c_readAck();   
		   	ym = i2c_readAck();
			   zl = i2c_readAck();   
		   	zm = i2c_readNak();

			i2c_stop(); 
			}

Kompass();// TEST
	_delay_ms(1);	
			
			// Ausgabe am LCD
			while (TWI_bereit()!=0)	
			_delay_ms(1);	
	
			i2c_start(0xb0);
			i2c_write(1);      // (ab) register 1 
			     	     	                             
			i2c_write(8); // Modus Sensortest
			i2c_write(xl); 
			i2c_write(xm); 
			i2c_write(yl); 
			i2c_write(ym); 
			i2c_write(zl); 
			i2c_write(zm); 
			i2c_write(kompass_akt); // TEST			
	
			i2c_stop();

	
			i2c_start(0xb0);     // Register 200 auf 1 setzen = neue Werte
	     	i2c_write(200);                        
	     	i2c_write(1);                        
	     	i2c_stop();     
LED_rot_aus;
_delay_ms(300);
LED_rot_ein;

}
}
Die Ausgabe erfolgt über I2C an den Slave der das LCD ansteuert. Um sicher zu sein dass es hier keinen Fehler gibt, lese ich zusätzlich den Kompass aus (auch über I2C) und zeige auch dessen Wert am LCD an.
Die Kompasswerte sehe ich auch, aber vom Sensor nichts. Bzw wenn ich die Abfrage von if(!(i2c_start(0x70))) auf i2c_start_wait(0x70); abändere habe ich 6x den Wert 113, dh h70+1.

LG!