From 05611c069795b2f809f47e60dbd64f5b1b62906f Mon Sep 17 00:00:00 2001 From: BlackMark Date: Fri, 3 Jul 2020 22:23:06 +0200 Subject: [PATCH] Add debug LED status light --- AdaptiveBrightnessFirmware/Inc/uart_vcp.hpp | 31 +++++++++++++++++++++ AdaptiveBrightnessFirmware/Src/main.cpp | 14 ++++------ 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/AdaptiveBrightnessFirmware/Inc/uart_vcp.hpp b/AdaptiveBrightnessFirmware/Inc/uart_vcp.hpp index 67d7108..ab6c851 100644 --- a/AdaptiveBrightnessFirmware/Inc/uart_vcp.hpp +++ b/AdaptiveBrightnessFirmware/Inc/uart_vcp.hpp @@ -3,6 +3,7 @@ #include #include +#include "gpio.h" #include "usbd_cdc.h" #include "usbd_def.h" @@ -82,6 +83,11 @@ class VirtualComPort { return hcdc->TxState != 0; }; +#ifndef NDEBUG + HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_RESET); +#endif + while(usbReady()) ; @@ -91,6 +97,10 @@ class VirtualComPort { USBD_CDC_SetTxBuffer(&hUsbDeviceFS, const_cast(m_usbAsyncTxBuffer.data), m_usbAsyncTxBuffer.size); USBD_CDC_TransmitPacket(&hUsbDeviceFS); + +#ifndef NDEBUG + HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_SET); +#endif } private: @@ -107,6 +117,12 @@ class VirtualComPort { static int8_t CdcInit() { +#ifndef NDEBUG + HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_SET); +#endif + USBD_CDC_SetTxBuffer(&hUsbDeviceFS, const_cast(m_txBuffer.data), 0); USBD_CDC_SetRxBuffer(&hUsbDeviceFS, const_cast(m_usbAsyncRxBuffer.data)); return USBD_OK; @@ -114,6 +130,12 @@ class VirtualComPort { static int8_t CdcDeInit() { +#ifndef NDEBUG + HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_SET); +#endif + m_txBuffer.size = 0; m_usbAsyncTxBuffer.size = 0; m_rxBuffer.head = 0; @@ -176,6 +198,11 @@ class VirtualComPort { static int8_t CdcReceive([[maybe_unused]] uint8_t* buf, uint32_t* length) { +#ifndef NDEBUG + HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_RESET); +#endif + if(USBD_CDC_ReceivePacket(&hUsbDeviceFS) != USBD_OK) return USBD_FAIL; @@ -187,6 +214,10 @@ class VirtualComPort { rxHandler(m_usbAsyncRxBuffer.data[i]); } m_receiving = false; + +#ifndef NDEBUG + HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_SET); +#endif return USBD_OK; } diff --git a/AdaptiveBrightnessFirmware/Src/main.cpp b/AdaptiveBrightnessFirmware/Src/main.cpp index 5bf7a03..3a70d8b 100644 --- a/AdaptiveBrightnessFirmware/Src/main.cpp +++ b/AdaptiveBrightnessFirmware/Src/main.cpp @@ -22,20 +22,18 @@ static inline void initializeHardware() terminal.init(); HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, g_error ? GPIO_PIN_RESET : GPIO_PIN_SET); } while(g_error); + + HAL_Delay(1000); + + HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_SET); + HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_SET); } int main() { initializeHardware(); - HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_SET); - HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_RESET); - HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_SET); - HAL_Delay(1000); - HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_SET); - HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_SET); - HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_SET); - terminal_t terminal; while(true) {