update
parent
654f9b1b3e
commit
f91a03e740
|
@ -2,7 +2,7 @@
|
||||||
* @Description:
|
* @Description:
|
||||||
* @Date: 2020-04-02 21:44:31
|
* @Date: 2020-04-02 21:44:31
|
||||||
* @LastEditors: CK.Zh
|
* @LastEditors: CK.Zh
|
||||||
* @LastEditTime: 2020-12-17 18:39:26
|
* @LastEditTime: 2020-12-17 20:08:43
|
||||||
* @FilePath: \NaviKit_stm32\Core\Src\freertos.c
|
* @FilePath: \NaviKit_stm32\Core\Src\freertos.c
|
||||||
*/
|
*/
|
||||||
/* USER CODE BEGIN Header */
|
/* USER CODE BEGIN Header */
|
||||||
|
@ -36,11 +36,11 @@
|
||||||
#include "iwdg.h"
|
#include "iwdg.h"
|
||||||
#include "gpio.h"
|
#include "gpio.h"
|
||||||
#include "usart.h"
|
#include "usart.h"
|
||||||
//#include "stdio.h"
|
|
||||||
#include "navikit.h"
|
#include "navikit.h"
|
||||||
#include "coulomb.h"
|
#include "coulomb.h"
|
||||||
#include "stdbool.h"
|
#include "stdbool.h"
|
||||||
#include "adc.h"
|
#include "adc.h"
|
||||||
|
#include "i2c.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
@ -115,6 +115,8 @@ const osThreadAttr_t PowerMonitTask_attributes = {
|
||||||
|
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
/* USER CODE BEGIN FunctionPrototypes */
|
/* USER CODE BEGIN FunctionPrototypes */
|
||||||
|
void osEnterSleepState();
|
||||||
|
void osEnterRuningState();
|
||||||
/* USER CODE END FunctionPrototypes */
|
/* USER CODE END FunctionPrototypes */
|
||||||
|
|
||||||
void StartDefaultTask(void *argument);
|
void StartDefaultTask(void *argument);
|
||||||
|
@ -217,7 +219,7 @@ void MX_FREERTOS_Init(void) {
|
||||||
LedBlinkTaskHandle = osThreadNew(StartLedBlinkTask, NULL, &LedBlinkTask_attributes);
|
LedBlinkTaskHandle = osThreadNew(StartLedBlinkTask, NULL, &LedBlinkTask_attributes);
|
||||||
|
|
||||||
/* creation of IWDGRefreshTask */
|
/* creation of IWDGRefreshTask */
|
||||||
IWDGRefreshTaskHandle = osThreadNew(StartIWDGRefreshTask, NULL, &IWDGRefreshTask_attributes);
|
// IWDGRefreshTaskHandle = osThreadNew(StartIWDGRefreshTask, NULL, &IWDGRefreshTask_attributes);
|
||||||
|
|
||||||
/* creation of EventDetect */
|
/* creation of EventDetect */
|
||||||
EventDetectHandle = osThreadNew(StartEventDetect, NULL, &EventDetect_attributes);
|
EventDetectHandle = osThreadNew(StartEventDetect, NULL, &EventDetect_attributes);
|
||||||
|
@ -277,7 +279,7 @@ void StartDefaultTask(void *argument)
|
||||||
|
|
||||||
Log(info,"Core initial successfully");
|
Log(info,"Core initial successfully");
|
||||||
Log(info,"----------------------------------------------");
|
Log(info,"----------------------------------------------");
|
||||||
|
osEnterSleepState();
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
|
@ -535,6 +537,7 @@ void StartStateSwitchTask(void *argument)
|
||||||
{//only from running state
|
{//only from running state
|
||||||
if((NaviKit.sys.sta == running))// && (NaviKit.som.shutdown_req == true)
|
if((NaviKit.sys.sta == running))// && (NaviKit.som.shutdown_req == true)
|
||||||
enter_shutdown_state();
|
enter_shutdown_state();
|
||||||
|
osEnterSleepState();
|
||||||
}break;
|
}break;
|
||||||
case running:
|
case running:
|
||||||
{//from sleep and shutdown state
|
{//from sleep and shutdown state
|
||||||
|
@ -601,7 +604,25 @@ void StartPowerMonitTask(void *argument)
|
||||||
/* Private application code --------------------------------------------------*/
|
/* Private application code --------------------------------------------------*/
|
||||||
/* USER CODE BEGIN Application */
|
/* USER CODE BEGIN Application */
|
||||||
|
|
||||||
|
//os enter sleep state for save power
|
||||||
|
void osEnterSleepState(){
|
||||||
|
Log(info,"EC Enter Sleep State");
|
||||||
|
vTaskSuspendAll();
|
||||||
|
HAL_SuspendTick();
|
||||||
|
HAL_I2C_MspDeInit(&hi2c1);
|
||||||
|
HAL_ADC_MspDeInit(&hadc1);
|
||||||
|
HAL_ADC_Stop_DMA(&hadc1);
|
||||||
|
HAL_PWR_EnableSleepOnExit();//for rtos application,enter sleep after interrupt end
|
||||||
|
HAL_PWR_EnterSLEEPMode(0,PWR_SLEEPENTRY_WFE);
|
||||||
|
}
|
||||||
|
void osEnterRuningState(){
|
||||||
|
HAL_ResumeTick();
|
||||||
|
HAL_I2C_MspInit(&hi2c1);
|
||||||
|
HAL_ADC_MspInit(&hadc1);
|
||||||
|
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&(NaviKit.pmb.rails.adc), ADC_CH_COUNT);
|
||||||
|
xTaskResumeAll();
|
||||||
|
Log(info,"EC Enter Runing State");
|
||||||
|
}
|
||||||
//printf redefine
|
//printf redefine
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
//#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
|
//#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
/*
|
||||||
|
* @Description:
|
||||||
|
* @Date: 2020-02-20 11:40:37
|
||||||
|
* @LastEditors: CK.Zh
|
||||||
|
* @LastEditTime: 2020-12-17 19:24:44
|
||||||
|
* @FilePath: \NaviKit_stm32\Core\Src\main.c
|
||||||
|
*/
|
||||||
/* USER CODE BEGIN Header */
|
/* USER CODE BEGIN Header */
|
||||||
/**
|
/**
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
|
@ -98,7 +105,7 @@ int main(void)
|
||||||
MX_GPIO_Init();
|
MX_GPIO_Init();
|
||||||
MX_DMA_Init();
|
MX_DMA_Init();
|
||||||
MX_I2C1_Init();
|
MX_I2C1_Init();
|
||||||
MX_IWDG_Init();
|
// MX_IWDG_Init();
|
||||||
MX_UART4_Init();
|
MX_UART4_Init();
|
||||||
MX_ADC1_Init();
|
MX_ADC1_Init();
|
||||||
MX_USART1_UART_Init();
|
MX_USART1_UART_Init();
|
||||||
|
@ -108,6 +115,7 @@ int main(void)
|
||||||
MX_NVIC_Init();
|
MX_NVIC_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
|
HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
/* Init scheduler */
|
/* Init scheduler */
|
||||||
|
|
|
@ -34,13 +34,6 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
|
||||||
{
|
{
|
||||||
if(hadc->Instance == ADC1)
|
if(hadc->Instance == ADC1)
|
||||||
{
|
{
|
||||||
// NaviKit.pmb.rails.out_24v = (float)((NaviKit.pmb.rails.adc[1]*16.0) / 1241.21);
|
|
||||||
// NaviKit.pmb.rails.out_5v = (float)((NaviKit.pmb.rails.adc[2]*8.0 ) / 1241.21);
|
|
||||||
// NaviKit.pmb.rails.out_12v = (float)((NaviKit.pmb.rails.adc[3]*8.0 ) / 1241.21);
|
|
||||||
// NaviKit.pmb.rails.bkp_bat = (float)((NaviKit.pmb.rails.adc[4]*8.0 ) / 1241.21);
|
|
||||||
// NaviKit.pmb.rails.main_pwr = (float)((NaviKit.pmb.rails.adc[5]*16.0) / 1241.21);
|
|
||||||
|
|
||||||
|
|
||||||
float adc_17_voltage = 1.2 / NaviKit.pmb.rails.adc[1];//reference voltage
|
float adc_17_voltage = 1.2 / NaviKit.pmb.rails.adc[1];//reference voltage
|
||||||
|
|
||||||
NaviKit.pmb.rails.out_24v = (float)(adc_17_voltage * NaviKit.pmb.rails.adc[2] * 16);
|
NaviKit.pmb.rails.out_24v = (float)(adc_17_voltage * NaviKit.pmb.rails.adc[2] * 16);
|
||||||
|
|
Loading…
Reference in New Issue