loop status callback working
This commit is contained in:
parent
2e4b0de78f
commit
73239f4436
@ -1,8 +1,13 @@
|
||||
#ifndef _LOOPCTRL_H_
|
||||
#define _LOOPCTRL_H_
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
void loopEnable();
|
||||
void loopDisable();
|
||||
void loopStatusCallback();
|
||||
|
||||
extern bool loopActive;
|
||||
|
||||
|
||||
#endif // _LOOPCTRL_H_
|
||||
|
@ -1,7 +1,12 @@
|
||||
#include <main.h>
|
||||
#include <loopCtrl.h>
|
||||
#include <led.h>
|
||||
|
||||
|
||||
bool loopActive = false;
|
||||
|
||||
void loopEnable() {
|
||||
loopActive = true;
|
||||
HAL_GPIO_WritePin(Loop_Enable_GPIO_Port, Loop_Enable_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Loop_Enable_GPIO_Port, Loop_Enable_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
@ -9,4 +14,13 @@ void loopEnable() {
|
||||
void loopDisable() {
|
||||
HAL_GPIO_WritePin(Loop_Disable_GPIO_Port, Loop_Disable_Pin, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Loop_Disable_GPIO_Port, Loop_Disable_Pin, GPIO_PIN_RESET);
|
||||
loopActive = false;
|
||||
}
|
||||
|
||||
void loopStatusCallback() {
|
||||
GPIO_PinState status = HAL_GPIO_ReadPin(Loop_Status_GPIO_Port, Loop_Status_Pin);
|
||||
if (status == GPIO_PIN_SET) {
|
||||
ledRed(true);
|
||||
loopActive = false;
|
||||
}
|
||||
}
|
@ -39,6 +39,11 @@ void helloWorld(void *handle) {
|
||||
|
||||
void helloMeterbus(void *handle) {
|
||||
static char hello[] = "Hello Meterbus\n\r";
|
||||
if (! loopActive) {
|
||||
loopEnable();
|
||||
ledRed(false);
|
||||
}
|
||||
|
||||
HAL_UART_Transmit_IT(&mbusUart, (uint8_t*) hello, strlen(hello));
|
||||
}
|
||||
|
||||
@ -48,6 +53,7 @@ void toggleLoop(void *handle) {
|
||||
if (state) {
|
||||
loopDisable();
|
||||
} else {
|
||||
ledRed(false);
|
||||
loopEnable();
|
||||
}
|
||||
state ^= true;
|
||||
@ -58,8 +64,8 @@ void my_setup_2() {
|
||||
ledGreen(true);
|
||||
|
||||
schAdd(helloWorld, NULL, 0, 5000);
|
||||
schAdd(toggleLoop, NULL, 0, 10000);
|
||||
schAdd(helloMeterbus, NULL, 0, 1000);
|
||||
// schAdd(toggleLoop, NULL, 0, 10000);
|
||||
schAdd(helloMeterbus, NULL, 0, 10000);
|
||||
|
||||
}
|
||||
|
||||
@ -70,3 +76,9 @@ void my_loop() {
|
||||
void SYSTICK_Callback() {
|
||||
schUpdate();
|
||||
}
|
||||
|
||||
void HAL_GPIO_EXTI_Callback(uint16_t pin) {
|
||||
if (pin == Loop_Status_Pin) {
|
||||
loopStatusCallback();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user