Jacek54 napisał(a):
W 1 linijce rc5cnt - dokłanie niewiadomo

wiadomo wiadomo

..... no tylko to działa razem z linijką DWA a zatem
if (rc5cnt > 1) {
if (( rc5cnt % 2) ==0 {
Irdata = Irdata << 1
if ((TCCR1B & (1<<ICES1))) Irdata |= 0x0001;
IrPulseCount++;
// .... coś tam dalej
}
}
czyli - JEŚLI wartość licznika impulsów RC5 bo zmienna rc5cnt jest jak z nazwy widać licznikiem impulsów ramki (rc5 cnt - rc5 counter) ... a więc zlicza je po kolei ... i nawet napisałem to w książce
Jacek54 napisał(a):
w 2 sprawdza resztę z dzielenia, jezeli 0 to
Takie wyjaśnienie kompletnie nie ma sensu ... ten warunek jest wykonywany TYLKO i wyłącznie (CO DRUGI IMPULS) do tego użyte jest modulo - proponuję zapoznać się z działaniem modulo i praktycznym jego wykorzystaniem czyli tak jak tutaj właśnie - mały przykład
Kod:
rc5cnt %2
0 0
1 1
2 0
3 1
4 0
5 1
6 0
7 1
8 0
9 1
10 0
11 1
12 0
13 1
widzisz teraz kiedy działa warunek if (( rc5cnt % 2)
zawsze gdy wartością modulo jest JEDEN czyli co drugie przerwanie można powiedzieć
a więc tak jak tam kolega wyżej pisał ale też ja zdaje się w książce - weź kartkę papieru i sobie DOKŁADNIE rozrysuj sobie jedną ramkę RC5 i analizuj ją zbocze po zboczu razem z tą procedurą
Jacek54 napisał(a):
w 3 wstawia 0 do Irdata na koniec
to jest tak nieprecyzyjne określenie - że aż ciarki po plecach przechodzą

... co to znaczy na końcu ?
zawartość Irdata jest przesuwana w LEWO panie kochany o jeden bit - a to że najmłodszy bit przyjmuje wartość zero przy okazji to już inna sprawa - podsumowując to tu buduje się wartość ramki
Jacek54 napisał(a):
w 4 sprawdza czy ustawiona jest reakcja na zbocze rosnące, jeżeli tak to wstawia 1 na końcu
DOKŁADNIE tylko że nie na żadnym KOŃCU lecz na pozycji najmłodszego bitu na którym wcześniej w linijce 3 było wsunięte zero
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]