#ifndef ENCODER_H_ #define ENCODER_H_ // Art des Drehencoders definieren // #define SingleStep // #define TwoStep #define TwoStep #define ENC_A_PORT PORTB /**< port for line A */ #define ENC_A_PIN PB0 /**< pin for line A */ #define ENC_B_PORT PORTB /**< port for line B */ #define ENC_B_PIN PB1 /**< pin for line B */ #define ENC_T_PORT PORTB /**< port for button */ #define ENC_T_PIN PB2 /**< pin for button */ typedef enum EButtonPressedState { ButtonPressed_Unpressed, ButtonPressed_Short, ButtonPressed_Long }tEButtonPressedState; // Initialisiert den Encoder und aktiviert den Interrupt + Timer void EncoderInit( void ); // Liest die Position des Encoders aus // Wenn Ueberlauf=1 dann zählt der Encoder nach Max // wieder von Min und umgekehrt int8_t EncoderRead( char Ueberlauf ); // Ruft den Status des Encoder-Knopfes tEButtonPressedState EncoderGetButtonState(void); // Setzt die aktuelle Drehencoderposition void EncoderWrite(int8_t EncoderPos); // Setzt Min- und Max-Werte für die Drehgeberposition void EncoderMinMax(int8_t EncoderMin,int8_t EncoderMax); void EncoderPolling(void); #endif /* ENCODER_H_ */