Witam!
Już nie mam sił do ds18b20, nawet nie moge nawiązać z nim połączenia. Jest podpięty pod atmega128 zegar 14.7456MHz. Już nie wiem co mu dolega. Podłączony jset tak: VDD - 5V, GND - wiadomo, DQ - PORTB.0 i przez R=4.7k do VDD. Poniżej funkcja reset i nawet na to nie odpowiada (bo po stanie wysokim powinien być przez ok 200us niski, a ten nic. Proszę o pomoc. Może źle odmierzam czasy. Ktoś ma jakieś procedurki dla tego zegara. Układ nie jest uszkodzony DS18b20 nie jest uszkodzony bo sprawdzałem gdzie indziej.
unsigned char onewire_reset(void) { unsigned char i = 200; sbi(DDRB, 0); sbi(PORTB, 0); _delay_us(10); cbi(PORTB, 0); _delay_us(100); _delay_us(100); _delay_us(100); _delay_us(100); _delay_us(80); sbi(PORTB, 0); _delay_us(30); cbi(DDRB, 0); while(i--) { if (bit_is_clear(PINB, 0)) { _delay_us(1); return 0; } else { return 1; } _delay_us(1); }
return 1;
}pozdrawiam