Witam
Pisze programik w avr-gcc do obs³ugi pastylek DS1990R. Czy komu¶ z was uda³a siê poprwna komunikacja z tymi pastylkami? Nie udaje mi siê nawet otrzymaæ sygna³u obecno¶ci po resecie. Pastylka nie odpowiada zerem wtedy kiedy powinna. Kawa³ek kodu do resetowania:
#define w1 1 unsigned char onewire_reset(void) { unsigned char bit; DDRD |= 1<<w1; PORTD &= ~(1<<w1); czekaj_500us(); DDRD &= ~(1<<w1); czekaj_60us(); //czekanie na presence pulse if(bit_is_set(PIND,w1)) bit=0; if(bit_is_clear(PIND,w1)) bit=1; return bit; }
Czy co¶ siê nie zgadza? Wydaje mi siê, ¿e powiniem dostaæ ³adne zero na lini 1wire kiedy pastylka jest pod³±czona. A dostaje je dopiero gdy zmniejsze czas oczekiwania na presence pulse poni¿ej 20 us. Czyli teoretycznie mniejszy ni¿ czas, po którym presence pulse jest wysy³any.
Je¿eli kto¶ bawi³ siê ju¿ czym¶ takim i mo¿e mi pomóc to by³bym bardzo wdziêczny za pomoc.