Witam
Od niedawna bawię się elektroniką a zwłaszcza atmegą 8.
Zrobiłem sobie enkoder na bazie as5040.
Algorytm wykrywanie kierunku zrobiłem sobie po swojemu i działa dobrze.
Ciekawe rzeczy odnośnie enkodera znalazłem tutaj:
http://www.mindspring.com/~tom2000/Delp ... troductionPrzypadkiem natknąłem na tym forum na taki kod do obsługi enkodera:
Kod:
new = 0;
if( PHASE_A )
new = 3;
if( PHASE_B )
new ^= 1; // convert gray to binary
diff = last - new; // difference last - new
if( diff & 1 ){ // bit 0 = value (1)
last = new; // store new as next last
enc_delta += (diff & 2) - 1; // bit 1 = direction (+/-)
}
nie bardzo wiem o co tu chodzi, może mi to ktoś wyjaśnić?
cały kod pochodzi z tej strony
http://www.mikrocontroller.net/articles/Drehgeber