*Problem mit DS1820*

Gast #116785
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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 #116792
Lesenswert?
• ▲
▼
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren