From 5f647a78732697a71c06e60cf5671f441dd505f8 Mon Sep 17 00:00:00 2001 From: Jan Horacek Date: Wed, 4 Aug 2021 09:03:44 +0200 Subject: [PATCH] Add small delay to main loop. Avoid mtbbus_send_lock to be locked for a big portion of time so inquiries are sent properly. --- .gitmodules | 3 +++ Makefile | 2 ++ inc/common.h | 2 +- lib/dwt_delay | 1 + src/main.c | 4 ++++ 5 files changed, 11 insertions(+), 1 deletion(-) create mode 160000 lib/dwt_delay diff --git a/.gitmodules b/.gitmodules index 0a207fd..9fb95c0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/libusb_stm32"] path = lib/libusb_stm32 url = git@github.com:dmitrystu/libusb_stm32.git +[submodule "lib/dwt_delay"] + path = lib/dwt_delay + url = git@github.com:keatis/dwt_delay.git diff --git a/Makefile b/Makefile index 01984fa..fe2d468 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,7 @@ C_SOURCES = \ lib/libusb_stm32/src/usbd_core.c \ lib/eeprom/ee.c \ lib/ina219/adafruit_ina219.c \ + lib/dwt_delay/dwt_delay.c \ $(wildcard src/*.c) ASM_SOURCES = startup_stm32f103xb.s @@ -85,6 +86,7 @@ C_OR_CPP_INCLUDES = \ -Ilib/libusb_stm32/inc \ -Ilib/eeprom \ -Ilib/ina219 \ + -Ilib/dwt_delay \ -I inc AS_INCLUDES = diff --git a/inc/common.h b/inc/common.h index e7544ad..7c0b0a3 100644 --- a/inc/common.h +++ b/inc/common.h @@ -4,6 +4,6 @@ #define MTBUSB_TYPE 0x01 #define FW_VER_MAJOR 0x01 -#define FW_VER_MINOR 0x00 +#define FW_VER_MINOR 0x01 #define MTBBUS_PROT_VER_MAJOR 0x04 #define MTBBUS_PROT_VER_MINOR 0x00 diff --git a/lib/dwt_delay b/lib/dwt_delay new file mode 160000 index 0000000..674f7b8 --- /dev/null +++ b/lib/dwt_delay @@ -0,0 +1 @@ +Subproject commit 674f7b848b30cea61a0686c255998d6aae2cc9e5 diff --git a/src/main.c b/src/main.c index b34d4b7..0dbe237 100644 --- a/src/main.c +++ b/src/main.c @@ -28,6 +28,7 @@ #include "ee.h" #include "leds.h" #include "adafruit_ina219.h" +#include "dwt_delay.h" /* Private variables ---------------------------------------------------------*/ @@ -112,12 +113,15 @@ int main(void) { poll_usb_tx_flags(); poll_speed_change(); config_save_poll(); + + DWT_Delay(200); // 200 us } } void init(void) { if (!clock_init()) error_handler(); + DWT_Init(); HAL_Init(); gpio_init(); leds_init();