Forum: Mikrocontroller und Digitale Elektronik RP6 I2C Temp Sensor DS1621 abfragen


von Big-G (Gast)


Lesenswert?

Hallo ich bin am verzweifeln. Ich hab einen RP6 und will über I2C den 
DS1621 abfragen. Jedoch erscheinen nur unsinige Werte. Die Adress Pins 
sind alle auf Ground gelegt. Kann mir vielleicht jemand weiter helfen?
1
int main(void)
2
{
3
   initRP6Control();
4
5
   I2CTWI_initMaster(100);
6
  
7
   while(true)
8
   {
9
      uint8_t DS1621Temp[2];
10
11
      I2CTWI_transmit2Bytes(0x90,0x90,0xAA);
12
      mSleep(25);
13
      I2CTWI_transmitByte(0x91, 0x91);
14
      I2CTWI_readBytes(0x91, DS1621Temp, 2); 
15
16
      writeString_P("Temp:");
17
      writeInteger(DS1621Temp[0], DEC);
18
      writeInteger(DS1621Temp[1], DEC);
19
      writeChar('\n');
20
21
      mSleep(250);
22
      }
23
   return 0;
24
}

von Big-G (Gast)


Lesenswert?

Es erscheint immer

Temp:916

:-S

von eProfi (Gast)


Lesenswert?

Ist Datenblatt-Lesen denn so schwer?
Zuerst musst Du die Temperatur messen (Start Convert T [EEh]), dann 
lange warten, dann das Ergebnis abholen.

      I2CTWI_transmitByte(0x91, 0x91);
Der Chip kennt keinen Befehl 91.

von Big-G (Gast)


Lesenswert?

Sorry ja hast recht hätte ich selber lesen können, trotzdem Danke für 
deine Antwort. Mein Code sieht nun wie folgt aus, jedoch kommt trotzdem 
nur blödsinn raus. Jetzt spuckt er mit 255240 aus
1
  while(true)
2
  {
3
    uint8_t DS1621Temp[2];
4
5
    I2CTWI_transmitByte(0x90,0xEE);
6
    mSleep(100);
7
    I2CTWI_transmitByte(0x91,0xAA);
8
    I2CTWI_readBytes(0x91, DS1621Temp, 2); 
9
10
    writeString_P("Temp:");
11
    writeInteger(DS1621Temp[0], DEC);
12
    writeInteger(DS1621Temp[1], DEC);
13
    writeChar('\n');
14
15
    mSleep(250);
16
  }

von Big-G (Gast)


Lesenswert?

Habs ;-)

richtig ist:
1
I2CTWI_transmitByte(0x90,0xEE);
2
mSleep(100);
3
I2CTWI_transmitByte(0x90,0xAA);
4
I2CTWI_readBytes(0x90, DS1621Temp, 2);

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.