Probleme mit DS1820

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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.