Moin! Ich möchte den ADT7301 per SPI auslesen. Er gibt mir auch immer fein Werte zurück, jedoch immer 65°C zu hoch. Was mache ich falsch? Hier die main und die Funktion zum auslesen: int main (void) { //SCK = PB7 //MISO = PB6 //MOSI = PB5 //SS = PB4 //CS1 = PB0 Tempsensor ADT7301 //CS2 = PB1 Beschleunigungssensor ADXL345 DDRB|=(1<<PB4); // CS /SS PORTB&=~(1<<PB4); DDRB|=(1<<PB0)|(1<<PB1); // CS1=PA5 und CS2=PA4 PORTB|=(1<<PA0)|(1<<PA1); // MISO Eingang PB3 DDRB&=~(1<<PB6); // MOSI Ausgang PB2 DDRB|=(1<<PB5); PORTB&=~(1<<PB5); // SCK Ausgang PB1, Hi DDRB|=(1<<PB7); PORTB&=~(1<<PB7); // SPI initialisieren SPCR|=(1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1); SPDR=0; uart_init(); rprintfInit(putch); rprintf("Test\n"); float temp; int rtemp; while(1){ temp=readtemp(); rtemp=(int)temp; rprintf("Temperatur %d \n",rtemp); temp=0; rtemp=0; */ } } float readtemp(void){ unsigned char tl, th; int t; float temp; cs1lo(); th=spiRecv(); tl=spiRecv(); cs1hi(); t=((th<<8)+tl); temp=t/32; return temp; } Ich bekomme immer Werte zwischen 82 und 87°C zurück. Was nun? Hat jemand einen Tip? Ein Problem der SPI Einstellungen? alsdenn, Jens
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.