enabled dimming over ADC input

This commit is contained in:
2024-05-21 03:39:07 +02:00
parent 92c8624fe4
commit a9d11ea891
10 changed files with 159 additions and 41 deletions

View File

@@ -107,7 +107,7 @@ void Error_Handler(void);
#define CLS_POWER_GPIO_Port GPIOE
/* USER CODE BEGIN Private defines */
void StartPowerTasks(void);
/* USER CODE END Private defines */
#ifdef __cplusplus

View File

@@ -45,7 +45,7 @@ void MX_ADC1_Init(void)
/** Common config
*/
hadc1.Instance = ADC1;
hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV2;
hadc1.Init.Resolution = ADC_RESOLUTION_16B;
hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
hadc1.Init.EOCSelection = ADC_EOC_SEQ_CONV;
@@ -76,7 +76,7 @@ void MX_ADC1_Init(void)
*/
sConfig.Channel = ADC_CHANNEL_5;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_32CYCLES_5;
sConfig.SamplingTime = ADC_SAMPLETIME_810CYCLES_5;
sConfig.SingleDiff = ADC_SINGLE_ENDED;
sConfig.OffsetNumber = ADC_OFFSET_NONE;
sConfig.Offset = 0;

View File

@@ -38,6 +38,7 @@
#include "LightTask.h"
#include "LightState.h"
#include "BSP_GPIO.h"
#include "BSP_ADC.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@@ -139,11 +140,6 @@ void MX_FREERTOS_Init(void) {
UsbDataHandler_Start();
ULOG_INFO("Setup CanDataTask");
CanDataTask_start();
ULOG_INFO("Setup CLS");
CLS_Init();
ULOG_INFO("Setup LightTask");
LightTask_start();
LightStateTask_start();
/* USER CODE END RTOS_THREADS */
/* USER CODE BEGIN RTOS_EVENTS */
@@ -206,6 +202,18 @@ void StartDefaultTask(void *argument)
snprintf(INA_LOG, sizeof(INA_LOG),"Voltage[mV] %.2f Current[mA] %d P[W]: %.2f", voltage_V, current, power_W);
ULOG_INFO(INA_LOG);
// Read the battery voltage
float bus = BSP_ADC_ReadBusValue();
float dimm = BSP_ADC_ReadDimmerValue();
// Print the battery voltage and dimmer value
char output[64];
snprintf(output,64,"Bus voltage: %.2fV, Dimmer voltage: %.2fV", bus, dimm);
ULOG_INFO(output);
}
/* USER CODE END StartDefaultTask */
}
@@ -226,8 +234,7 @@ void WaitForStartConfirm_Task(void *argument) {
osDelayUntil(tick);
tick += delayTime;
if(BSP_GPIO_K15isSet() || CanDataTask_gotCarCanMessage()) {
BSP_GPIO_ClsOn();
BSP_GPIO_RadioOn();
BSP_POWER_FullPowerMode();
ULOG_INFO("Power systems started");
osThreadExit();
@@ -251,5 +258,19 @@ void WaitForStartConfirm_Task(void *argument) {
}
}
// this is called from BSP_POWER_FullPowerMode
// this function should start tasks that depend on the power being on
void StartPowerTasks(void) {
ULOG_INFO("Setup CLS");
CLS_Init();
ULOG_INFO("Setup LightTask");
LightTask_start();
LightStateTask_start();
}
/* USER CODE END Application */

View File

@@ -135,7 +135,6 @@ int main(void)
BSP_GPIO_PeriperalsOn();
BSP_POWER_Init();
BSP_ADC_Start();
ULOG_INIT();
ULOG_SUBSCRIBE(ULOG_SendLPUART,ULOG_DEBUG_LEVEL);
ULOG_DEBUG("Setup Logger");

View File

@@ -73,18 +73,6 @@ void HAL_MspInit(void)
/* PendSV_IRQn interrupt configuration */
HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
/** Enable the VREF clock
*/
__HAL_RCC_VREF_CLK_ENABLE();
/** Disable the Internal Voltage Reference buffer
*/
HAL_SYSCFG_DisableVREFBUF();
/** Configure the internal voltage reference buffer high impedance mode
*/
HAL_SYSCFG_VREFBUF_HighImpedanceConfig(SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE);
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */