summaryrefslogtreecommitdiffstats
path: root/radiator-plc/stm32/app/rain.c
diff options
context:
space:
mode:
Diffstat (limited to 'radiator-plc/stm32/app/rain.c')
-rw-r--r--radiator-plc/stm32/app/rain.c100
1 files changed, 0 insertions, 100 deletions
diff --git a/radiator-plc/stm32/app/rain.c b/radiator-plc/stm32/app/rain.c
deleted file mode 100644
index 4188990..0000000
--- a/radiator-plc/stm32/app/rain.c
+++ /dev/null
@@ -1,100 +0,0 @@
-#include "project.h"
-
-#define DEBOUNCE 20
-
-static uint8_t r_state;
-static uint32_t r_ticks;
-static uint8_t r_current;
-static uint8_t r_filtered;
-static unsigned r_expiry;
-
-
-#define RAIN_BANK GPIOA
-#define RAIN_GPIO GPIO15
-
-static int
-raw_rain (void)
-{
- return !gpio_get (RAIN_BANK, RAIN_GPIO);
-}
-
-
-void rain_notify (void)
-{
- if (r_current)
- vents_rain_notify();
-}
-
-
-void rain_ticker (void)
-{
- unsigned s;
- static int ticker = 0;
-
-
- s = raw_rain();
-
- if (s == r_state) {
- if (r_ticks < DEBOUNCE)
- r_ticks++;
- else if (r_ticks == DEBOUNCE) {
- r_current = s;
- r_ticks++;
- printf ("D: rain state now %d\r\n", r_current);
- }
- } else {
- r_ticks = 0;
- r_state = s;
- }
-
- if (r_current) {
- r_filtered = 1;
- r_expiry = 1800;
- }
-
- rain_notify();
-
- ticker++;
-
- if (ticker < 1000) return;
-
- ticker = 0;
-
- if (r_expiry)
- r_expiry--;
- else
- r_filtered = r_current;
-
-}
-
-void rain_slow_ticker (void)
-{
- printf ("R: %d %d\r\n", r_current, r_filtered);
-}
-
-
-int rain_filtered_state (void)
-{
- return r_filtered;
-}
-
-int rain_state (void)
-{
- return r_current;
-}
-
-char rain_state_char (void)
-{
- return r_current ? 'Y' : 'N';
-}
-
-void
-rain_init (void)
-{
- gpio_set_mode (RAIN_BANK, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN,
- RAIN_GPIO);
-
- gpio_set (RAIN_BANK, RAIN_GPIO);
-}
-
-