diff --git a/doc/eclipse_debugger_launch/ParaTNC-STM32F100.launch b/doc/eclipse_debugger_launch/ParaTNC-STM32F100.launch
index c72bebe..bfe7434 100644
--- a/doc/eclipse_debugger_launch/ParaTNC-STM32F100.launch
+++ b/doc/eclipse_debugger_launch/ParaTNC-STM32F100.launch
@@ -47,10 +47,10 @@
-
+
-
+
diff --git a/include/main.h b/include/main.h
index 0e52ecb..81a8721 100644
--- a/include/main.h
+++ b/include/main.h
@@ -5,8 +5,8 @@
#include "drivers/serial.h"
#include "config_data.h"
-#define SW_VER "EA00"
-#define SW_DATE "24092021"
+#define SW_VER "EA01"
+#define SW_DATE "28092021"
#define SYSTICK_TICKS_PER_SECONDS 100
#define SYSTICK_TICKS_PERIOD 10
diff --git a/include/rte_wx.h b/include/rte_wx.h
index 34c104b..948a44d 100644
--- a/include/rte_wx.h
+++ b/include/rte_wx.h
@@ -52,7 +52,7 @@ extern uint8_t rte_wx_winddirection_it;
extern uint16_t rte_wx_winddirection_last;
extern uint16_t rte_wx_average_windspeed;
extern uint16_t rte_wx_max_windspeed;
-extern uint16_t rte_wx_average_winddirection;
+extern int16_t rte_wx_average_winddirection;
extern int8_t rte_wx_humidity, rte_wx_humidity_valid;
diff --git a/include/station_config_target_hw.h b/include/station_config_target_hw.h
index 5067abd..d785096 100644
--- a/include/station_config_target_hw.h
+++ b/include/station_config_target_hw.h
@@ -11,7 +11,7 @@
//#define PARATNC_HWREV_A
//#define PARATNC_HWREV_B
//#define PARATNC_HWREV_C
-#define PARAMETEO
+//#define PARAMETEO
#ifdef PARAMETEO
// those defines and an undef are only required for shitty Eclipse indexer to see anything from STM32L471xx target
diff --git a/src/pwr_save.c b/src/pwr_save.c
index 0b53ece..b569695 100644
--- a/src/pwr_save.c
+++ b/src/pwr_save.c
@@ -122,6 +122,8 @@ void pwr_save_init(config_data_powersave_mode_t mode) {
*/
void pwr_save_enter_stop2(void) {
+ analog_anemometer_deinit();
+
// clear previous low power mode selection
PWR->CR1 &= (0xFFFFFFFF ^ PWR_CR1_LPMS_Msk);
diff --git a/src/pwr_switch.c b/src/pwr_switch.c
index 33af4fc..6cc8196 100644
--- a/src/pwr_switch.c
+++ b/src/pwr_switch.c
@@ -13,6 +13,7 @@
#include "wx_handler.h"
#include "io.h"
#include "pwr_save.h"
+#include "delay.h"
#ifdef STM32F10X_MD_VL
diff --git a/src/rte_wx.c b/src/rte_wx.c
index edc1ee9..56a3f9b 100644
--- a/src/rte_wx.c
+++ b/src/rte_wx.c
@@ -28,7 +28,7 @@ uint8_t rte_wx_winddirection_it = 0;
uint16_t rte_wx_winddirection_last = 0;
uint16_t rte_wx_average_windspeed = 0;
uint16_t rte_wx_max_windspeed = 0;
-uint16_t rte_wx_average_winddirection = 0;
+int16_t rte_wx_average_winddirection = 0;
int8_t rte_wx_humidity = 0, rte_wx_humidity_valid = 0;
diff --git a/system/include/drivers/analog_anemometer.h b/system/include/drivers/analog_anemometer.h
index b8436b5..0de7cc9 100644
--- a/system/include/drivers/analog_anemometer.h
+++ b/system/include/drivers/analog_anemometer.h
@@ -37,7 +37,7 @@ void analog_anemometer_init( uint16_t pulses_per_meter_second,
uint8_t anemometer_lower_boundary,
uint8_t anemometer_upper_boundary,
uint8_t direction_polarity);
-
+void analog_anemometer_deinit(void);
void analog_anemometer_timer_irq(void);
void analog_anemometer_dma_irq(void);
uint32_t analog_anemometer_get_ms_from_pulse(uint16_t inter_pulse_time);
diff --git a/system/src/drivers/analog_anemometer.c b/system/src/drivers/analog_anemometer.c
index 6f4af20..8957ed4 100644
--- a/system/src/drivers/analog_anemometer.c
+++ b/system/src/drivers/analog_anemometer.c
@@ -329,6 +329,18 @@ void analog_anemometer_init(uint16_t pulses_per_meter_second, uint8_t anemometer
return;
}
+void analog_anemometer_deinit(void) {
+#ifdef STM32L471xx
+ LL_DMA_DisableIT_TC(DMA1, LL_DMA_CHANNEL_5);
+
+ LL_DMA_DisableChannel(DMA1, LL_DMA_CHANNEL_5);
+
+ LL_TIM_DisableCounter(TIM4);
+
+ LL_TIM_DisableCounter(TIM3);
+#endif
+}
+
void analog_anemometer_timer_irq(void) {
analog_anemometer_timer_has_been_fired = 1;
}