#include /************************************************************************/ /* */ /* Reading rotary encoder */ /* one, two and four step encoders supported */ /* */ /* Author: Peter Dannegger */ /* target: ATmega16 */ /************************************************************************/ #include #include //#define XTAL 8e6 // 8MHz #define F_TIMER1 100 // Timer 1 frequency /Hz #define ENCODER_PIN PINC #define PHASE_A (1<>= 1; break; case 4: enc_delta = val & 3; val >>= 2; break; default: enc_delta = 0; break; } SREG = saveSREG; return val; // counts since last call } //////////////////////////////////////////////////////////////////////////////// // void setup() // void setup() { Serial.begin( 9600 ); PORTC |= PHASE_A | PHASE_B; // activate internal pull up resistors LEDS_DDR = 0xFF; encode_init(); sei(); } // Ende void setup() void loop() { count.neu += encode_read(4); // read a single step encoder if (count.alt != count.neu) { Serial.print(F("count = ")); Serial.println(count.neu); LEDS = count.neu; count.alt = count.neu; } } // Ende void loop()