Forum: Mikrocontroller und Digitale Elektronik TI TMP101NA/250 Bascom


von Mark X. (lechuck_ger)


Lesenswert?

Hallo,

hat sich wer schon mit dem TI TMP101NA/250 beschäftigt ?
Gibt es da ne Lib für Bascom für ?

Grüße

Mark

von beginnerequest (Gast)


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;
      }
    }
}

von Mark X. (lechuck_ger)


Lesenswert?

Super !
Danke konnte es genauso für den TMP101 portieren
manchmal sieht man den Wald vor lauter Bäumen nicht ...

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.