Potrzebuje pomocy "1-wire - atmega32"

Mar 18, 2006 5 Replies

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.


a jestes pewien opuznien czasowych?

ja robilem opuznienia czasowe dla ukladów 1wire w symulatorze dopiero wtedy mi zadzia³a³o ok

AzaZeL

Pżypadek ... wszystko pżes to, ze robiłes opużnienia zamiast opóżnien.

No ja ostatnio robilem DS1990R... Ostatnio ktos sie chwalil na grupie kawalkiem kodu (odsylam do google). Swietna robota. Ale mi tez nie dzialalo. Mialem odpowiedz na reset ale nic pozatym. W 90% pies jest pogrzebany w czasach. U mnie pomoglo obejrzenie na oscyloskopie cyfrowym.

no i przeszkadza Ci to? to nieczytaj

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required