6 changed files with 111 additions and 0 deletions
@ -0,0 +1,62 @@ |
|||
#include "../app/task_adc.h" |
|||
#include "../msp/msp_adc.h" |
|||
#include "../app/app_config.h" |
|||
#include "../msp/uart0.h" |
|||
|
|||
|
|||
|
|||
S_TASK_ADC _s_task_adc; |
|||
|
|||
|
|||
void L3_task_Adc_init(void) |
|||
{ |
|||
L1_task_init(&_s_task_adc.task); |
|||
_s_task_adc.index = 0; |
|||
_s_task_adc.SUM = 0; |
|||
L3_task_s_go(_s_task_adc,D_task_init); |
|||
} |
|||
|
|||
#define D_task_ADC_READ 0x50 |
|||
#define D_task_ADC_COUNT 0x51 |
|||
|
|||
|
|||
void L3_task_Adc_handler(S_TASK_ADC *s) |
|||
{ |
|||
TTSS_Task_init() |
|||
L2_task_go_Tdelay(D_task_ADC_READ,D_Tdelay_300ms); |
|||
|
|||
TTSS_Task_step(D_task_ADC_READ) |
|||
s->adc_val[_s_task_adc.index] = L1_ADC_Read(12); |
|||
s->SUM += s->adc_val[_s_task_adc.index++]; |
|||
|
|||
if (_s_task_adc.index >= 10) |
|||
{ |
|||
_s_task_adc.index = 0; |
|||
L2_task_go_Tdelay(D_task_ADC_COUNT,D_Tdelay_300ms); |
|||
} |
|||
else |
|||
{ |
|||
L2_task_go_Tdelay(D_task_ADC_READ,D_Tdelay_300ms); |
|||
} |
|||
TTSS_Task_step(D_task_ADC_COUNT) |
|||
// 计算平均值
|
|||
U16 Aver = s->SUM / ADC_NUM; |
|||
// 计算方差
|
|||
U8 i; |
|||
FP32 Variance = 0; |
|||
for(i = 0; i < ADC_NUM; i++) |
|||
{ |
|||
Variance += (s->adc_val[i] - Aver) * (s->adc_val[i] - Aver); |
|||
} |
|||
Variance /= ADC_NUM; |
|||
|
|||
// // 方差合格,计算电量,放到G,不合格丢弃
|
|||
// if ((U16)(Variance*10) < 2)
|
|||
// {
|
|||
// Vin = (Aver / 0x1000) * 3.3;
|
|||
// Percent = Vin / 4.2
|
|||
// }
|
|||
Aver = 0; |
|||
L2_task_go_Tdelay(D_task_ADC_READ,D_Tdelay_300ms); |
|||
TTSS_Task_end(); |
|||
} |
@ -0,0 +1,34 @@ |
|||
////////////////////////////////////////////////////////////////////////////
|
|||
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
|
|||
///-------------------------------------------------------------------------
|
|||
/// @file bsp_drv.h
|
|||
/// @brief bsp @ driver config
|
|||
///-------------------------------------------------------------------------
|
|||
/// @version 1.0
|
|||
/// @author CC
|
|||
/// @date 20180331
|
|||
/// @note cc_AS_stc02
|
|||
|
|||
//////////////////////////////////////////////////////////////////////////////
|
|||
|
|||
#ifndef _TASK_ADC_H |
|||
#define _TASK_ADC_H |
|||
|
|||
#include "../ctask/task.h" |
|||
|
|||
#define ADC_NUM 10 |
|||
|
|||
typedef struct _s_task_adc |
|||
{ |
|||
TS_task task; |
|||
U16 adc_val[ADC_NUM]; |
|||
U8 index; |
|||
U16 SUM; |
|||
}S_TASK_ADC; |
|||
|
|||
extern S_TASK_ADC _s_task_adc; |
|||
|
|||
extern void L3_task_Adc_init(void); |
|||
extern void L3_task_Adc_handler(S_TASK_ADC *s); |
|||
|
|||
#endif // #ifndef
|
Loading…
Reference in new issue