K74B/87400/usr/common/measureTask.c

94 lines
1.5 KiB
C
Raw Permalink Normal View History

2024-01-25 14:22:18 +08:00
/**
* @copyright 2015 Indie Semiconductor.
*
* This file is proprietary to Indie Semiconductor.
* All rights reserved. Reproduction or distribution, in whole
* or in part, is forbidden except by express written permission
* of Indie Semiconductor.
*
* @file measureTask.c
* @Author: Jack.Pan
* @E-mail:jack.pan@indiemicro.com
* @Date: 2020/09/10
*/
#include <crc32.h>
#include <measureTask.h>
static TaskState_t adcTaskState = TASK_STATE_INIT;
static volatile uint32_t measStart = 0U;
void measureDoneISR(ADCMeasureParam_t item, uint16_t *const result);
void measureParamInit(void);
void updateTimerExpired(SoftTimer_t *timer);
static volatile uint32_t adcConvertDone = 0U;
static SoftTimer_t updateTimer = {
.mode = TIMER_PERIODIC_MODE,
.interval = 50U,
.handler = updateTimerExpired
};
void updateTimerExpired(SoftTimer_t *timer)
{
TM_PostTask(TASK_ID_ADC_MEASURE);
}
extern uint16_t g_AdVal[3];
void measureDoneISR(ADCMeasureParam_t param, uint16_t *const result)
{
measStart = 1U;
TM_PostTask(TASK_ID_ADC_MEASURE);
g_AdVal[0] = result[3];
g_AdVal[1] = result[2];
}
void MES_TaskHandler(void)
{
switch(adcTaskState){
case TASK_STATE_INIT:
measureParamInit();
ADC_GeneralInit();/* init ADC */
ADC_RegisterIRQ(measureDoneISR);
/* start updating timer */
SoftTimer_Start(&updateTimer);
adcTaskState = TASK_STATE_ACTIVE;
break;
case TASK_STATE_ACTIVE:
break;
default:
break;
}
}
void measureParamInit(void)
{
}