source: trunk/firmware_v2/SES/src/button.c @ 17

Last change on this file since 17 was 17, checked in by f.jahn, 9 days ago
File size: 1.8 KB
Line 
1#include <stdio.h>
2#include "button.h"
3#include "main.h"
4
5#define LONG_PRESS_TIME 5000
6#define MIN_PRESS_TIME  10
7
8button_state_t buttonState;
9uint32_t longPressCounterButtonOn;
10uint32_t longPressCounterButtonOff;
11
12
13// Diese funktion muss regelmäßig aufgerufen werden um die Taster abzufragen.
14// 1ms
15button_state_t BUTTON_Exec(void)
16{
17
18  if (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_ON_GPIO_Port, GPIO_INPUT_BTN_ON_Pin) == GPIO_PIN_SET)
19  {
20    //Taste On wird gedrückt
21    longPressCounterButtonOn++;
22  }
23
24
25  if (longPressCounterButtonOn > LONG_PRESS_TIME)
26  {   
27
28    if (buttonState != BUTTON_MANUAL_ON)
29    {
30      printf("BUTTON: Auto Mode Manual On\n");
31      buttonState = BUTTON_MANUAL_ON;
32    }
33  }
34  else if ( (longPressCounterButtonOn > MIN_PRESS_TIME) && (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_ON_GPIO_Port, GPIO_INPUT_BTN_ON_Pin) == GPIO_PIN_RESET))
35  {
36    //Taste On wurde for 10m gesdrückt und losgelassen
37    if (buttonState != BUTTON_AUTO)
38    {
39      printf("BUTTON: Auto Mode\n");
40      buttonState = BUTTON_AUTO;
41    }
42  }
43
44
45
46  if (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_ON_GPIO_Port, GPIO_INPUT_BTN_ON_Pin) == GPIO_PIN_RESET)
47  {
48    longPressCounterButtonOn = 0;
49  }
50
51
52  // ------ Taste OFF -----
53  if (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_OFF_GPIO_Port, GPIO_INPUT_BTN_OFF_Pin) == GPIO_PIN_SET)
54  {
55    //Taste Off wird gedrückt
56    longPressCounterButtonOff++;
57    if (longPressCounterButtonOff > MIN_PRESS_TIME)
58    {
59      if (buttonState != BUTTON_OFF) 
60      {
61        printf("BUTTON: Off Mode\n");
62        buttonState = BUTTON_OFF;
63      }
64    }
65  }
66  else
67  {
68    longPressCounterButtonOff = 0;
69  }
70
71  return buttonState;
72
73}
74
75
76button_state_t BUTTON_GetMode(void)
77{
78  return buttonState;
79}
80
81void BUTTON_SetModeOff(void)
82{
83  buttonState = BUTTON_OFF;
84}
Note: See TracBrowser for help on using the repository browser.