source: trunk/firmware/Core/src/button.c@ 9

Last change on this file since 9 was 9, checked in by f.jahn, 10 months ago

Firmware Erstellung begonnen:

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