TI TMP101NA/250 Bascom

Gast #2292635
Lesenswert?

Bei LPC2148 habe ich es entwickelt:


/*-----------  TMP100 Texas Instrument Temperatursensor 
--------------------*/

//////////////////////////////////////////////////////////////////////// 
///////
//  TMP100init initialisiert den I2C TMP100 Temperatursensor
//////////////////////////////////////////////////////////////////////// 
///////
BYTE TMP100init(void)
{
  BYTE erg=C_OK;

  I2CAddress=TEMP_I2C_ADDRESS;        // 4Ch I2C-Adresse des TMP100, 
wenn der nicht diese Adresse hat, werden dann nur 9 bit Auflösung haben
  I2CSendBuffer[0]=0x01;        //Configuration Pointer Register
  I2CSendBuffer[1]=0x60;        //12-bit resolution
  I2CWriteLength=2;
  if (I2C0MasterTransmit()==FALSE)      //Daten über I2C senden
  erg=C_FEHLER_I2C;

  return erg;
}

//////////////////////////////////////////////////////////////////////// 
///////
//  TMP100temp holt den Wert vom TMP100 Temperatursensor
//////////////////////////////////////////////////////////////////////// 
///////
DWORD TMP100temp(BYTE *Ergebnis)
{
    BYTE Temperatur[4];
    DWORD erg,temp;

    I2CAddress=TempAddress;               //I2C-Adresse des TMP100
    I2CSendBuffer[0]=0x00;                //Temperature Pointer Register
    I2CWriteLength=1;
    I2CReadLength=2;

    if (I2C0MasterTransmit()==FALSE)      //Daten über I2C senden
    {
      *Ergebnis = C_FEHLER_I2C;           //Fehlermeldung: I2C-Adresse 
nicht gefunden
      return 0;
    }
    else
    {
      if (I2C0MasterReceive()==FALSE) //Daten über I2C empfangen
      {
        *Ergebnis = C_FEHLER_I2C;           //Fehlermeldung: I2C-Adresse 
nicht gefunden
        return 0;
      }
      else
      {
        for (int i=0;i<2;i++)
          Temperatur[i]=I2CReadBuffer[i];

        erg=Temperatur[0];
        erg<<=16;
        temp=Temperatur[1];
        temp<<=8;
        erg+=temp;

        *Ergebnis = C_OK;
        return erg;
      }
    }
}

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