You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.3 KiB
C

#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_ */