Forum: Compiler & IDEs LM75 auslesen


von Gizmo (Gast)


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.

von TV-Raucher (Gast)


Lesenswert?

Ja Ja angehängt.

von Gizmo (Gast)


Angehängte Dateien:

Lesenswert?

so jetzt der code ;-)

von Gizmo (Gast)


Angehängte Dateien:

Lesenswert?

so hier ist der richtige code. sorry war n langer Tag.

von Martin Schneider (Gast)


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

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
Noch kein Account? Hier anmelden.