39 #include <avr/interrupt.h>
59 for (i = 0; i < NUM_ENCODERS; i++)
73 cbi(ENC0_PHASEA_DDR, ENC0_PHASEA_PIN);
74 sbi(ENC0_PHASEA_PORT, ENC0_PHASEA_PIN);
76 sbi(ENC0_ICR, ENC0_ISCX0);
77 cbi(ENC0_ICR, ENC0_ISCX1);
84 cbi(ENC1_PHASEA_DDR, ENC1_PHASEA_PIN);
85 sbi(ENC1_PHASEA_PORT, ENC1_PHASEA_PIN);
87 sbi(ENC1_ICR, ENC1_ISCX0);
88 cbi(ENC1_ICR, ENC1_ISCX1);
95 cbi(ENC2_PHASEA_DDR, ENC2_PHASEA_PIN);
96 sbi(ENC2_PHASEA_PORT, ENC2_PHASEA_PIN);
98 sbi(ENC2_ICR, ENC2_ISCX0);
99 cbi(ENC2_ICR, ENC2_ISCX1);
105 cbi(ENC3_PHASEA_DDR, ENC3_PHASEA_PIN);
106 sbi(ENC3_PHASEA_PORT, ENC3_PHASEA_PIN);
108 cbi(ENC3_PHASEB_DDR, ENC3_PHASEB_PIN);
109 sbi(ENC3_PHASEB_PORT, ENC3_PHASEB_PIN);
111 sbi(ENC3_ICR, ENC3_ISCX0);
112 cbi(ENC3_ICR, ENC3_ISCX1);
125 if (encoderNum < NUM_ENCODERS)
126 return EncoderState[encoderNum].
position;
135 if (encoderNum < NUM_ENCODERS)
136 EncoderState[encoderNum].
position = position;
169 if( ((inb(ENC2_PHASEA_PORTIN) & (1<<ENC2_PHASEA_PIN)) == 0) ^
170 ((inb(ENC2_PHASEB_PORTIN) & (1<<ENC2_PHASEB_PIN)) == 0) )
188 if( ((inb(ENC3_PHASEA_PORTIN) & (1<<ENC3_PHASEA_PIN)) == 0) ^
189 ((inb(ENC3_PHASEB_PORTIN) & (1<<ENC3_PHASEB_PIN)) == 0) )