*Problem mit DS1820*

Gast #116785
Ich will mit dem 90S8535 den DS1820 Temp-Sensor auslesen bzw.
ansprechen. Kann mir jemeand helfen? Ich habe mal den C-Code
hier reingestellt. Da tut sich nichts bei mir.
(Compiler CodeVision AVR)

unsigned char ow_reset(void)
{
 unsigned char presence;
 DDRD.7 = 1;
 PORTD.7 = 0;
 delay_us(29);
 PORTD.7 = 1;
 delay_us(3);
 DDRD.7 = 0;
 presence = PIND.7;
 delay_us(25);
 return presence;
}

unsigned char read_bit(void)
{
 unsigned char i;
 DDRD.7 = 1;
 PORTD.7 = 0;
 PORTD.7 = 1;
 for(i=0;i<3;i++);
 DDRD.7 = 0;
 return PIND.7;
}

unsigned char read_byte(void)
{
 unsigned char i;
 unsigned value = 0;
 for(i=0;i<8;i++)
  {
   if(read_bit()) value |=0x01 << i;
   delay_us(6);
  }
 return value;
}
Gast #116786
Wieviel ist "nichts"?

Was sagt das "presence" Flag von Deinem Reset? Schon das nichts? Wie
sieht der Bus im Oszi aus (auch "nichts"?). Bist Du sicher, daß die
delay_us() die passende Länge erzeugt (was soll das eigentlich für ein
jecker Umrechnungsfaktor sein?).
Gast #116789
Mit hoher Wahrscheinlichkeit ja. Ist mir zu Anfang auch schon mehrfach
passiert. TO-92 ist auch nicht meine Welt .. ;)

Meist reagiert der zwar noch, aber die Tempwerte sind Müll.
Gast #116792
Hallo,
ich bastle auch gerade mit dem DS18s20. Allerdings verwende ich
AVR-GCC.
So schlecht sieht dieser Code von dir nicht aus. Beim read_bit würde
ich  Verzögerungen einbauen, es könnte sonst zu schnell gehen.
Gruß Elektrikser
Gast #116794
Das kann man nicht so einfach sagen. Aber meistens sind die Bauteile
nicht so begeistert, wenn sie verpolt werden. Da hilft echt nur
ausprobieren....

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.