led green blinking on network status
This commit is contained in:
@ -1,49 +1,46 @@
|
||||
#include <main.h>
|
||||
#include <show.h>
|
||||
#include <PontCoopScheduler.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <stm32f103xe.h>
|
||||
|
||||
|
||||
void show(signalPin_t signalPin, signalAction_t action) {
|
||||
GPIO_TypeDef *port = NULL;
|
||||
uint16_t pin = 0;
|
||||
typedef struct {
|
||||
GPIO_TypeDef *port;
|
||||
uint16_t pin;
|
||||
signalAction_t currentState;
|
||||
} showElement_t;
|
||||
|
||||
switch (signalPin) {
|
||||
case DEBUG_1:
|
||||
port = Debug_Signal_1_GPIO_Port;
|
||||
pin = Debug_Signal_1_Pin;
|
||||
break;
|
||||
showElement_t showElement[] = {
|
||||
{ .port = Debug_Signal_1_GPIO_Port, .pin = Debug_Signal_1_Pin, .currentState = OFF },
|
||||
{ .port = Debug_Signal_2_GPIO_Port, .pin = Debug_Signal_2_Pin, .currentState = OFF },
|
||||
{ .port = LED_Red_GPIO_Port, .pin = LED_Red_Pin, .currentState = OFF },
|
||||
{ .port = LED_Green_GPIO_Port, .pin = LED_Green_Pin, .currentState = OFF },
|
||||
{ .port = NULL, .pin = 0, .currentState = OFF }
|
||||
};
|
||||
|
||||
case DEBUG_2:
|
||||
port = Debug_Signal_2_GPIO_Port;
|
||||
pin = Debug_Signal_2_Pin;
|
||||
break;
|
||||
|
||||
case LED_RED:
|
||||
port = LED_Red_GPIO_Port;
|
||||
pin = LED_Red_Pin;
|
||||
break;
|
||||
|
||||
case LED_GREEN:
|
||||
port = LED_Green_GPIO_Port;
|
||||
pin = LED_Green_Pin;
|
||||
break;
|
||||
}
|
||||
|
||||
if (port != NULL) {
|
||||
switch (action) {
|
||||
case ON:
|
||||
HAL_GPIO_WritePin(port, pin, GPIO_PIN_SET);
|
||||
break;
|
||||
|
||||
case OFF:
|
||||
HAL_GPIO_WritePin(port, pin, GPIO_PIN_RESET);
|
||||
break;
|
||||
|
||||
case TOGGLE:
|
||||
HAL_GPIO_TogglePin(port, pin);
|
||||
break;
|
||||
static void showHandler(void *handle) {
|
||||
uint8_t idx = 0;
|
||||
while (showElement[idx].port) {
|
||||
if (showElement[idx].currentState == BLINK) {
|
||||
HAL_GPIO_TogglePin(showElement[idx].port, showElement[idx].pin);
|
||||
}
|
||||
idx++;
|
||||
}
|
||||
}
|
||||
|
||||
void show(signalPin_t signalPin, signalAction_t action) {
|
||||
showElement[signalPin].currentState = action;
|
||||
if (action == ON || action == OFF) {
|
||||
HAL_GPIO_WritePin(showElement[signalPin].port, showElement[signalPin].pin, ((action == ON) ? GPIO_PIN_SET : GPIO_PIN_RESET));
|
||||
} else if (action == TOGGLE) {
|
||||
HAL_GPIO_TogglePin(showElement[signalPin].port, showElement[signalPin].pin);
|
||||
}
|
||||
}
|
||||
|
||||
void showInit() {
|
||||
schAdd(showHandler, NULL, 0, 250);
|
||||
}
|
Reference in New Issue
Block a user