aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-12-13 00:43:41 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-12-13 00:43:41 +0100
commite47eab60c490495acc6468668f44f19a88065b2f (patch)
tree6cb0ea27bad092ed488188c179a8b708305fc4b7
parentaebb7e588e73bd4123be7a540bcad8596b4351d6 (diff)
downloadglutte-o-matic-e47eab60c490495acc6468668f44f19a88065b2f.tar.gz
glutte-o-matic-e47eab60c490495acc6468668f44f19a88065b2f.tar.bz2
glutte-o-matic-e47eab60c490495acc6468668f44f19a88065b2f.zip
Ensure tm_trigger only does a single pulse
-rw-r--r--src/fsm/main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/fsm/main.c b/src/fsm/main.c
index 15fe4cb..903f874 100644
--- a/src/fsm/main.c
+++ b/src/fsm/main.c
@@ -16,11 +16,8 @@
#include "common.h"
// Private variables
-volatile uint32_t time_var1, time_var2;
-
static int tm_trigger = 0;
-
// Private function prototypes
void init();
@@ -152,6 +149,7 @@ static struct fsm_input_signals_t fsm_input;
static void exercise_fsm(void *pvParameters)
{
int cw_last_trigger = 0;
+ int last_tm_trigger = 0;
fsm_input.humidity = 0;
fsm_input.temp = 15;
@@ -160,7 +158,9 @@ static void exercise_fsm(void *pvParameters)
fsm_input.wind_generator_ok = 1;
while (1) {
pio_set_fsm_signals(&fsm_input);
- fsm_input.start_tm = tm_trigger; // user button
+ fsm_input.start_tm = (tm_trigger == 1 && last_tm_trigger == 0) ? 1 : 0;
+ last_tm_trigger = tm_trigger;
+
if (fsm_input.start_tm) {
GPIO_SetBits(GPIOD, GPIO_Pin_15);
}