Hallo,

das dient ja nur zum schlafen legen. Ich will den Sensor ja nicht schlafen legen. Ich sende jetzt einfach 0x00. Da nur das 3. Bit wichtig ist, sollen die anderen ja null sein. Das 3. Bit ist dann eben auch null, also der Sensor wird nicht schlafen gelegt.

Ich bin irgendwie soweit, dass ich immer die gleichen Daten empfange, wobei ich allerdings das Gefühl habe, dass der Datenmüll weniger vom Sensor kommt, als mehr durch meine Speicherung und Verarbeitung der Daten.


Code:
uint16_t data= 0;
unsigned char str[8];

/* Daten auslesen */

PORTE &= ~(1<<PE2);                // Sensor aktivieren, CS -> LOW 
_delay_us(10);                          // wait 
SPDR= 0x00; 
while(!(SPSR & (1<<SPIF)));             
data= (SPDR<<8) & 0x3FFF;        // 8 Bit auslesen                                  
SPDR= 0x00;                             
while(!(SPSR & (1<<SPIF)));             
data+= SPDR;                           // Weitere 8 Bit auslesen 
_delay_us(10);                          // wait 
PORTE |= (1<<PE2);                   // Sensor deaktivieren

 
// Daten umrechnen, Formeln aus Datenblatt
if ((0x2000 & temp_data) == 0x2000)    
{                                      
    data = (int)(data - 16384)/32;  
}
else
{
    data = (int)(data/32);         
}

utoa(data,(char*)str,10);
send(str);