mam problem natury takiej że nie moge uzyskac odpowiedzi od czujnka ds18s20
mam kod inicjalizujcy łaczenie w postani
próbowałem juz przy róznych ustawieniach atmegi przy wewnętrznym osc 1, 2, 4 i zewnetrznbym 2 mhz - bez rezultatu - podejrzewam że to moze byc coś z zegarem mimo wszystko no le robie wsztsrko wg noty katalogowej atmegi wiec lipa
Proszę umieszczać listingi programów w znacznikach "Code". [c_p]
mam kod inicjalizujcy łaczenie w postani
uint8_t WireReset(void)
//zwraca 1 gdy po wystawieniu resetu na magistrali 1-Wire slave (w tym
// przypadku termometr) zglosi swoja obecnosc; w przeciwnym razie zwraca 0
//dziala poprawnie tylko w obecnosci 1 slave'a na magistrali!
{
uint8_t temp=0;
(DDRC |= _BV(1));
//(PORTC |=_BV(1));
ustaw_bit_na_0; //impuls inicjujący (ok. 480us)
_delay_us(480);
//_delay_us(480);
ustaw_bit_na_1; //zwolnienie linii
_delay_us(65); //po odczekaniu ok. 65us czekaj na impuls obecności
if(czytaj_bit==0){
temp++; //zapamiętaj fakt wykrycia impulsu obecności
;
}
_delay_us(415); //czekaj ok. 415us do zakończenia slotu inicjującego
if(czytaj_bit==0){
temp++; //jeśli pozostaje w stanie niskim, to oznacza zwykłe zwarcie
}
if(temp==1){ //slave zglosil sie
return 1;
}
else { //slave nie zglosil sie
(PORTC |=_BV(1));
return 0;
}
}
próbowałem juz przy róznych ustawieniach atmegi przy wewnętrznym osc 1, 2, 4 i zewnetrznbym 2 mhz - bez rezultatu - podejrzewam że to moze byc coś z zegarem mimo wszystko no le robie wsztsrko wg noty katalogowej atmegi wiec lipa
Proszę umieszczać listingi programów w znacznikach "Code". [c_p]