Cześć!
W sumie napisałem kod z poradnikiem wideo mirka i w sumie all działa. Ale nie rozumiem skąd ta tablica:
const int8_t table[16] PROGMEM = {0,1,-1,0,-1,0,0,1,1,0,0,-1,0,-1,1,0};
widac, że mozna ja podzielić na 4 część podobne:
{0,1,-1,0},{-1,0,0,1},{1,0,0,-1},{0,-1,1,0}
wdać w sumie, że 1 i 4 są takie same tylko odwórcone wartości. Podobnie jak 2 i 3. Nie wiem w przerwaniu mamy:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jak mirek mówił w filmie jest to kod greya. Ale jak widać zmienna last ciągle przesuwa, w koncu sie zeruje co pozwala dodac do zmiennej ed 0 wiec spoko. W sumie jakieś sugestie mile widziane.
A właśnie jak widać w kodzie gdy dodamy do zmiennej last 2 znaczy 10 i w nastepnym przesuniemy o 2 i znowu dodamy 10 to mamy: 1010 = 10, znaczy zgodnie z tablicą dodajemy 0, czy tak powinno być?
Przedstawiam wam kod greya po moich poprawkach:
const int8_t table[16] PROGMEM = {0,1,-1,0,0,0,0,0,0,0,0,0,0,-1,1,0};
dziwne nie?
Ale czemu i by nie. Skoro wystaczy dokonac poprawki w evencie na: ecnt = ed>>1; ed &= 0x01; i tez skacze co 1. Mam nadzieje, że zamieszałem i to konkretnie

.