Originally Posted by
Satya
Is it possible to show the code
Hi Satya.
The function is:
Code:
void encoderPulse(struct paramList Encoder)
{
if ( inCriticalSection == TRUE ) return;
inCriticalSection = TRUE;
int MSB = digitalRead(Encoder.GPIO_A);
int LSB = digitalRead(Encoder.GPIO_B);
int encoded = (MSB << 1) | LSB;
int sum = (lastEncoded << 2) | encoded;
if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderPos++;
else if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderPos--;
lastEncoded = encoded;
inCriticalSection = FALSE;
}
The entire code is here ... NewIQ_rot.c. It is very much work in progress. Thanks.