/************************************************************************ Reading rotary encoder one, two and four step encoders supported Author: Peter Dannegger target: ATmega168 modifiziert Richard S. ************************************************************************/ #define F_CPU 8000000UL #include #include #include #include #include "HD44780.c" #define XTAL 8e6 // 8MHz #define ENCODER_PIN PINC #define PHASE_A (1<>= 1; break; case 4: enc_delta = val & 3; val >>= 2; break; default: enc_delta = 0; break; } sei(); return val; // counts since last call } int main( void ) { int32_t val = 0; LCD_Initialize(); LCD_GoTo(0,0); // LCD Ausgabe in 1-te Zeile LCD_WriteText("Encoder-Impuls :"); PORTC |= PHASE_A | PHASE_B; // activate internal pull up resistors // LEDS_DDR = 0xFF; encode_init(); sei(); for(;;){ val += encode_read(4); // read a single step encoder dtostrf(val,4,0,str1); LCD_GoTo(4,1); // Go to Second Line LCD_WriteText(str1); // LEDS = val; } }