|
signed char incTable[16] = { // Encoder increment table
0, // 0
-1, // 1
1, // 2
0, // 3
1, // 4
0, // 5
0, // 6
-1, // 7
-1, // 8
0, // 9
0, // 10
1, // 11
0, // 12
1, // 13
-1, // 14
0 // 15
};Pos <<= 2; // Move the old data left two places
if (!(ARC_PIN & ARC_UP))
Pos |= (1<<0);
if (!(ARC_PIN & ARC_DN))
Pos |= (1<<1);
_tmp = incTable[Pos & 0x0F];
if (_tmp == 1)
Data.arc += ARC_DELTA;
else if (_tmp == -1)
Data.arc -= ARC_DELTA;