BJ-Keyer  1.03
Morsekeyer für 2 TRX und 6 Morsetasten
encoder.h
gehe zur Dokumentation dieser Datei
1 
13 #ifndef ENCODER_H_
14 #define ENCODER_H_
15 // Art des Drehencoders definieren
16 // #define SingleStep
17 // #define TwoStep
18 #define TwoStep
19 
20 #define ENC_A_PORT PORTB
21 #define ENC_A_PIN PB1
22 #define ENC_B_PORT PORTB
23 #define ENC_B_PIN PB0
24 #define ENC_T_PORT PORTB
25 #define ENC_T_PIN PB2
26 
27 #define DDR(x) (*(&x-1))
28 #define Port(x) (*(&x))
29 #define PIN(x) (*(&x-2))
30 
31 #define PHASE_A PIN(ENC_A_PORT) & (1<<ENC_A_PIN)
32 #define PHASE_B PIN(ENC_B_PORT) & (1<<ENC_B_PIN)
33 #define BUTTONPRESSED (!(PIN(ENC_T_PORT) & (1<<ENC_T_PIN)))
34 
35 #define BUTTON_DEBOUNCETIME_MS 30
36 #define BUTTON_PRESSEDLONG_MS 250
37 
38 typedef enum EButtonPressedState
39 {
43 }tEButtonPressedState;
44 
45 // Initialisiert den Encoder und aktiviert den Interrupt + Timer
46 void EncoderInit( void );
47 // Liest die Position des Encoders aus
48 // Wenn Ueberlauf=1 dann zдhlt der Encoder nach Max
49 // wieder von Min und umgekehrt
50 int8_t EncoderRead(char Ueberlauf);
51 // Ruft den Status des Encoder-Knopfes
52 tEButtonPressedState EncoderGetButtonState(void);
53 // Setzt die aktuelle Drehencoderposition
54 void EncoderWrite(int8_t EncoderPos);
55 // Setzt Min- und Max-Werte fьr die Drehgeberposition
56 void EncoderMinMax(int8_t EncoderMin,int8_t EncoderMax);
57 void EncoderPolling(void);
58 #endif /* ENCODER_H_ */
59 
EButtonPressedState
Definition: encoder.h:39
@ ButtonPressed_Short
Taster kurz betätigt.
Definition: encoder.h:41
@ ButtonPressed_Unpressed
kein Taster betötigt
Definition: encoder.h:40
@ ButtonPressed_Long
Taster lang betätigt.
Definition: encoder.h:42
tEButtonPressedState EncoderGetButtonState(void)
Liefert den Status des Tasters vom Drehencoder.
Definition: encoder.c:192
void EncoderPolling(void)
EncoderPolling.
Definition: encoder.c:66
void EncoderInit(void)
Initialisierung des Drehencoders und der Startwerte.
Definition: encoder.c:44
int8_t EncoderRead(char Ueberlauf)
Liest die akt. Position des Drehencoders.
Definition: encoder.c:143
void EncoderMinMax(int8_t EncoderMin, int8_t EncoderMax)
Setzt den minimalen und maximalen Bereich des Drehencoders.
Definition: encoder.c:179
void EncoderWrite(int8_t EncoderPos)
Setzt die aktuelle Position des Drehencoders.
Definition: encoder.c:168
volatile int8_t EncoderPos
Encoderposition für WpM/BpM.
Definition: globals.h:188