add coulomb task and driver files
parent
e5675efb6d
commit
24f2105fd6
|
@ -31,7 +31,7 @@
|
|||
#include "usart.h"
|
||||
#include "stdio.h"
|
||||
#include "navikit.h"
|
||||
|
||||
#include "coulomb.h"
|
||||
#include "stdbool.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
|
@ -82,6 +82,13 @@ const osThreadAttr_t ButtonDetect_attributes = {
|
|||
.priority = (osPriority_t) osPriorityLow,
|
||||
.stack_size = 128 * 4
|
||||
};
|
||||
/* Definitions for CoulombRead */
|
||||
osThreadId_t CoulombReadHandle;
|
||||
const osThreadAttr_t CoulombRead_attributes = {
|
||||
.name = "CoulombRead",
|
||||
.priority = (osPriority_t) osPriorityLow,
|
||||
.stack_size = 128 * 4
|
||||
};
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* USER CODE BEGIN FunctionPrototypes */
|
||||
|
@ -91,6 +98,7 @@ void StartDefaultTask(void *argument);
|
|||
void StartLedBlinkTask(void *argument);
|
||||
void StartIWDGRefreshTask(void *argument);
|
||||
void StartButtonDetect(void *argument);
|
||||
void StartCoulombRead(void *argument);
|
||||
|
||||
extern void MX_USB_DEVICE_Init(void);
|
||||
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
||||
|
@ -134,6 +142,9 @@ void MX_FREERTOS_Init(void) {
|
|||
/* creation of ButtonDetect */
|
||||
ButtonDetectHandle = osThreadNew(StartButtonDetect, NULL, &ButtonDetect_attributes);
|
||||
|
||||
/* creation of CoulombRead */
|
||||
CoulombReadHandle = osThreadNew(StartCoulombRead, NULL, &CoulombRead_attributes);
|
||||
|
||||
/* USER CODE BEGIN RTOS_THREADS */
|
||||
/* add threads, ... */
|
||||
|
||||
|
@ -243,7 +254,7 @@ void StartButtonDetect(void *argument)
|
|||
if(NaviKit.pwr_button_pushed == true)
|
||||
{//仍被按下
|
||||
if(NaviKit.system_runing == true)
|
||||
{//当前处于开机状态,进行关机操作
|
||||
{//当前处于开机状态,进行关机操作
|
||||
NaviKit.system_runing = false;
|
||||
|
||||
HAL_GPIO_WritePin(USB2_VBUS_CTL_1_GPIO_Port,USB2_VBUS_CTL_1_Pin, GPIO_PIN_RESET);
|
||||
|
@ -262,7 +273,7 @@ void StartButtonDetect(void *argument)
|
|||
|
||||
}
|
||||
else
|
||||
{//当前处于关机状态,进行开机操作
|
||||
{//当前处于关机状态,进行开机操作
|
||||
NaviKit.system_runing = true;
|
||||
Beep(40);
|
||||
HAL_GPIO_WritePin(BAT_RELAY_CTL_GPIO_Port ,BAT_RELAY_CTL_Pin, GPIO_PIN_SET);
|
||||
|
@ -296,6 +307,25 @@ void StartButtonDetect(void *argument)
|
|||
/* USER CODE END StartButtonDetect */
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN Header_StartCoulombRead */
|
||||
/**
|
||||
* @brief Function implementing the CoulombRead thread.
|
||||
* @param argument: Not used
|
||||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_StartCoulombRead */
|
||||
void StartCoulombRead(void *argument)
|
||||
{
|
||||
/* USER CODE BEGIN StartCoulombRead */
|
||||
/* Infinite loop */
|
||||
for(;;)
|
||||
{
|
||||
IIC
|
||||
osDelay(10);
|
||||
}
|
||||
/* USER CODE END StartCoulombRead */
|
||||
}
|
||||
|
||||
/* Private application code --------------------------------------------------*/
|
||||
/* USER CODE BEGIN Application */
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
#include "coulomb.h"
|
||||
#include "i2c.h"
|
||||
|
||||
bool is_coulomb_ready()
|
||||
{
|
||||
HAL_I2C_IsDeviceReady(hi2c1,COULOMB_ADDR);
|
||||
}
|
||||
coulomb_write_reg()
|
||||
{
|
||||
HAL_I2C_IsDeviceReady(COULOMB_ADDR);
|
||||
}
|
||||
coulomb_read_reg()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
bool coulomb_read_alcc()
|
||||
{
|
||||
return HAL_GPIO_ReadPin(COULOMB_ALCC_GPIO_Port,COULOMB_ALCC_Pin);
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* coulomb.h
|
||||
*
|
||||
* Created on: Apr 27, 2020
|
||||
* Author: oarap
|
||||
*/
|
||||
|
||||
#ifndef _COULOMB_H_
|
||||
#define _COULOMB_H_
|
||||
|
||||
#define COULOMB_ADDR 0x64 //device address
|
||||
#define COULOMB_WRITE_CMD 0x00 //coulomb write command
|
||||
#define COULOMB_READ_CMD 0x01 //coulomb read command
|
||||
|
||||
|
||||
#endif /* _COULOMB_H_ */
|
|
@ -26,7 +26,7 @@ FREERTOS.FootprintOK=true
|
|||
FREERTOS.INCLUDE_xTaskGetCurrentTaskHandle=1
|
||||
FREERTOS.INCLUDE_xTaskGetHandle=1
|
||||
FREERTOS.IPParameters=Tasks01,configMAX_TASK_NAME_LEN,configUSE_TICKLESS_IDLE,INCLUDE_xTaskGetCurrentTaskHandle,INCLUDE_xTaskGetHandle,configUSE_APPLICATION_TASK_TAG,FootprintOK,configUSE_IDLE_HOOK,configUSE_TICK_HOOK,configUSE_MALLOC_FAILED_HOOK,configGENERATE_RUN_TIME_STATS,configUSE_STATS_FORMATTING_FUNCTIONS,configUSE_TRACE_FACILITY
|
||||
FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;LedBlinkTask,8,128,StartLedBlinkTask,Default,NULL,Dynamic,NULL,NULL;IWDGRefreshTask,40,128,StartIWDGRefreshTask,Default,NULL,Dynamic,NULL,NULL;ButtonDetect,8,128,StartButtonDetect,Default,NULL,Dynamic,NULL,NULL
|
||||
FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL;LedBlinkTask,8,128,StartLedBlinkTask,Default,NULL,Dynamic,NULL,NULL;IWDGRefreshTask,40,128,StartIWDGRefreshTask,Default,NULL,Dynamic,NULL,NULL;ButtonDetect,8,128,StartButtonDetect,Default,NULL,Dynamic,NULL,NULL;CoulombRead,8,128,StartCoulombRead,Default,NULL,Dynamic,NULL,NULL
|
||||
FREERTOS.configGENERATE_RUN_TIME_STATS=0
|
||||
FREERTOS.configMAX_TASK_NAME_LEN=32
|
||||
FREERTOS.configUSE_APPLICATION_TASK_TAG=0
|
||||
|
|
Loading…
Reference in New Issue