Forum: Mikrocontroller und Digitale Elektronik Probleme mit DS1820


von Sascha Biedermann (Gast)


Lesenswert?

Hallo!

Ich habe mir eine Funktion geschrieben, um zu prüfen ob ein Sensor mit
einer bestimmten ROM-Id mit dem 1-WIRE Bus verbunden ist. Jedoch gibt
diese Funktion immer false zurück, wenn die Sensor-Temperatur über ca.
50°C steigt. Kann mir evtl. jemand helfen? Im Datenblatt finde ich
keine Lösung. Trozdem kann ich den Sensor ansprechen, und die
Temperatur auslesen.

Hier die Funktion (AVR-GCC):

unsigned char SearchRom(unsigned char RomID[])
{
  unsigned char i,j,temp,op;
  if(ow_reset())  return FALSE;
  write_byte(0xF0);

  for(i=0;i<8;i++)
  {
    for(j=0;j<8;j++)
    {
      op = 0;
      if (read_bit()==1) op++;
      wait_us(120);
      if (read_bit()==1) op++;
      temp = RomID[i]>>j;
      temp &= 0x01;
      write_bit(temp);
    }
    if (op == 2) return FALSE;
  }

  return TRUE;
}

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.