LM75 auslesen

Gast #1066102
Lesenswert?

Hallo

Ich versuche einen LM75 auszulesen. Habe A0,A1,A2 auf GND gelegt der 
Chip hat also die Adresse 0x90. Ich benutze die I2C Routinen von Peter 
Fleury.
Die Daten, die der LM75 ausspuckt, lasse ich mir mit Hilfe von Hyper 
Terminal anzeigen.
Jetzt Habe ich das Problem, dass der Sensor immer nur den gleichen Wert 
zurück gibt. Muss ich noch eine Delay Routine einbauen oder wie seht ihr 
das ?
Meinen Code habe ich mal angehängt.
Danke für eure Hilfe.

gruß Gizmo.
Gast #1066600
Lesenswert?

Lass mich raten - du kriegst immer 0 oder 0.5 Grad zurück?

Ursache:
1
  return_value = LM92CIM_Temperatur1<<8;    //LM92CIM_Temperatur in High Byte schieben
2
  return_value |= LM92CIM_Temperatur2;

Da LM92CIM_Temperatur1 eine 8-Bit-Variable ist, bekommts du nach 8x 
links-shiften zuverlässig eine 0...

Besser wäre:
1
  return_value = LM92CIM_Temperatur1; 
2
  return_value = (return_value << 8) | LM92CIM_Temperatur2;

da return_value eine 16-Bit-Variable ist.

Oder du überläßt dem Compiler die Einzelheiten und schreibst
1
  return_value = LM92CIM_Temperatur1 * 256;    //LM92CIM_Temperatur in High Byte schieben
2
  return_value |= LM92CIM_Temperatur2;

Ahoi, Martin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren