Probleme mit DS1820

Gast #59081
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;
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.