- posted
18 years ago
1 - wire na 51
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
Grodo <(zamienXna2000) snipped-for-privacy@poczta.onet.pl> napisał(a):
Popatrz na to ...
.. oraz na to ...
.. i pomyśl przez chwilkę ;-)
Piotrek
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
Grodo <(zamienXna2000) snipped-for-privacy@poczta.onet.pl> napisał(a):
> > .. i pomyśl przez chwilkę ;-)Proszę bardzo.
Z powyższej linii wnioskuję , że linia DQ DS18B20 poczłączona jest do P0.7 (ameryki pewnie nie odkryłem). Teraz wyobraźmy sobie , że 1-szy bajt odpowiedzi DS-a = 0xFF , na co funkcja _receive_ zwróci ośmiokrotnie wartość 0x80. Wartość zmiennej "i" zmienia się w pętli "for" od "0" do "7" i popatrzmy co się dzieje: i=0 dana=0 dana|=((receive())<<i); Wartość recive = 0x80 i po wykonaniu przesunięcia w lewo "i=0" krotnie zostanie wykonana operacja "OR" z daną i w wyniku tego: dana=0x80 i++ i=1 dana=0x80 Wartość recive = 0x80 i po wykonaniu przesunięcia w lewo "i=1" krotnie zostanie wykonana operacja "OR" z daną i w wyniku tego: dana=0x80 .. mówiąc wprost wartość 0x80 , przesunięta w lewo więcej niż zero razy w wyniku da ZAWSZE 0x00.
To tyle. Jeśli nie jasno się wyraziłem , to proszę o uwagi.
Piotrek
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
Grodo <(zamienXna2000) snipped-for-privacy@poczta.onet.pl> napisał(a):
Z mojego doświadczenia wynika , że łatwiej znaleźć błąd w cudzym kodzie , niż we własnym ;-) Rzekłbym - "Najciemniej pod latarnią"
Pozdrawiam Piotrek
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago