wie hast du ihn angeschlossen ?! wie ist er konfiguriert ?!
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?
dank im vorausCode: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);
marcus
wie hast du ihn angeschlossen ?! wie ist er konfiguriert ?!
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?
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
Ja, danke für den Tipp, genau hier liegt das Problem, danke jetzt gehts endlich
freut mich, dass ich mit meinen bescheidenen Kenntnissen auch mal helfen konnte
Lesezeichen