-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinput.c
More file actions
58 lines (48 loc) · 987 Bytes
/
Copy pathinput.c
File metadata and controls
58 lines (48 loc) · 987 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "general.h"
#include "input.h"
#include "gpio.h"
/**
* @brief Liest Werte des Pins an Kanal A und B des Drehgebers aus und gibt den Zustand zurück
*/
int readDrehgeber(void) {
// int kanal_a = readGPIOPin(BUTTON_PORT, KANAL_A);
// int kanal_b = readGPIOPin(BUTTON_PORT, KANAL_B);
//
// if (!kanal_a && !kanal_b) {
// return PHASE_A;
// }
// else if (kanal_a && !kanal_b) {
// return PHASE_B;
// }
// else if (kanal_a && kanal_b) {
// return PHASE_C;
// }
// else {
// return PHASE_D;
// }
int input = (GPIOF->IDR & 0x0C) >> 2;
switch(input){
case PHASE_A:
return PHASE_A;
case PHASE_B:
return PHASE_B;
case PHASE_C:
return PHASE_C;
case PHASE_D:
return PHASE_D;
}
}
int isPressed(int button) {
return readGPIOPin(BUTTON_PORT, button);
}
int readGPIO(int number, int* value) {
if ((number > 0) && (number < 15)){
*value = readGPIOPin(BUTTON_PORT, number);
return EOK;
}
else {
*value = -1;
return INTERNAL_ERR;
}
}
//EOF