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