PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LM75 aktualisiert nicht (gelöst)



marc2100
02.09.2009, 11:45
Hallo,

Wir wollen die Temperaturwerte des LM75 per i2c an unseren ATMega32 übertragen.
Das funktioniert zwar, allerdings zeigt er uns immer die selbe Temperatur an.
Wenn man die Schlatung resetet gibt er einem die Akutelle Temperatur, allerdings wieder die ganz Zeit die Selbe.

Für i2c/Uart benuzten wir die Fertige lib von peter fleury.
Uart funktioniert einwandfrei.

Woran kann das liegen?


do{


ret=i2c_start(LM75+I2C_READ);
if(ret==0) {

i2c_wert=i2c_readAck();
zahl1=i2c_readNak();
i2c_stop();


itoa( i2c_wert, buffer, 10);


uart_puts(buffer);
uart_puts("\n\r");




}
else
{
uart_puts("FEHLER!! \n\r");
}

}while(1);

dank im voraus

marcus

Ceos
02.09.2009, 12:14
wie hast du ihn angeschlossen ?! wie ist er konfiguriert ?!

marc2100
02.09.2009, 12:49
Angeschlossen ist er per Stecker ans STK500, PULL-Ups 4,7K sind auch dran.
Wie geasgt antwortet er ja auch und gibt die Temperatur raus, aber er "aktualisiert" diese danach nicht mehr.
Aber was bitte meinst du mit konfiguriert?
Laut Datenblatt ist der Pointer ja per default im Temp-Register und kann abgefragt werden.
Ich habe auch schonmal versucht als erstes das Register zu setzten, aber mit dem selben Ergebniss.
Muss ich noch etwas anderes einstellen?

pacer_one
02.09.2009, 14:12
versuch doch bitte mal eine Warteschleife einzufügen, eventuell ließt du zu schnell aus, so dass das Temperaturregister nicht aktualisiert werden kann.
Im Datenblatt sollte stehen wie viel Zeit für eine Wandlung benötigt wird.

Edit:
laut Datenblatt:
Temperature Conversion Time 100 ms
wenn du die Zeit unterschreitest bekommst du immer den alten Wert, deswegen funktioniert es auch nur am Anfang

marc2100
02.09.2009, 14:42
Ja, danke für den Tipp, genau hier liegt das Problem, danke jetzt gehts endlich :)

pacer_one
02.09.2009, 15:04
freut mich, dass ich mit meinen bescheidenen Kenntnissen auch mal helfen konnte :-)