Forum: Mikrocontroller und Digitale Elektronik I2C Tmp100 Temperatur


von Andreas (Gast)


Lesenswert?

Hallo,

Ich habe soeben das Beispielprogramm auf mein ADUC841 geladen. Verändert 
am Programm hab ich nur LCD init und die Port addresse des SDA und SCL, 
da diese auf dem ADUC841 anders sind (SDA = 0xA7 und SCL = 0xA6. Am 
Display steht dann: -0.0625 Grad

Hier der Ausschnitt:

TempH = i2c_read(1);
TempL = i2c_read(1);
Temp = TempH << 8;
Temp = Temp | TempL;
Temp = Temp >> 4;

Temperatur = Temp*0.0625;

sprintf(gTXT,"%6.4f Grad",Temperatur);
print_lcd(2,1,gTXT);

Ich hab mir weiters die Werte von TempH und TempL in HEX ausgeben lassen 
und in beiden steht: FF00, ich hab mir den Code angeschaut, aber warum 
genau dieser Wert in TempH und TempL steht, versteh ich nicht. Durch das 
zusammenstellen der 2 werte steht also dann in Temp FFFF.


Die Verknüpfung müsste etwas hiermit zu tun haben:

unsigned char I2C_Lesen(unsigned char I2C_Addr, unsigned char Reg_Addr)
{
unsigned char Daten;
Daten = i2c_read(0);

return(Daten);
}

Der Linken unten führt zum diesem Beispielprgramm.


Vielen dank im Vorraus für die Hilfe

mfg

Andreas

www.c51.de/c51.de/Dateien/Liste.php?showArt=1&showHerst=1&showRubrik=1&s 
uchen=TMP100.zip

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.