diff --git a/cube/User/Inc/signal.h b/cube/User/Inc/signal.h new file mode 100644 index 0000000..66cd0bc --- /dev/null +++ b/cube/User/Inc/signal.h @@ -0,0 +1,13 @@ +#ifndef _DEBUG_H_ +#define _DEBUG_H_ + + +#include + +typedef enum { DEBUG_1, DEBUG_2, LED_RED, LED_GREEN } signalPin_t; +typedef enum { ON, OFF, TOGGLE } signalAction_t; + +void signal(signalPin_t signalPin, signalAction_t action); + + +#endif // _DEBUG_H_ diff --git a/cube/User/Src/signal.c b/cube/User/Src/signal.c new file mode 100644 index 0000000..ef75e8d --- /dev/null +++ b/cube/User/Src/signal.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include + + +void signal(signalPin_t signalPin, signalAction_t action) { + GPIO_TypeDef *port = NULL; + uint16_t pin = 0; + + switch (signalPin) { + case DEBUG_1: + port = Debug_Signal_1_GPIO_Port; + pin = Debug_Signal_1_Pin; + break; + + 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; + } + } +}