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