//////////////////////////////////////////////////////////////////////////// ///@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 _APP_TASK_ADC_H #define _APP_TASK_ADC_H #include "../app/app_config.h" #include "../ctask/task.h" #include "../clib/clib.h" #define ADC_CHANNEL_STATUS_UNREADY 0 //UnReady状态,不能读取 #define ADC_CHANNEL_STATUS_READY 1 //ready状态,可以读取 //AD_CHANNEL_SAMPLE 采样 #define MAX_OUT_NUM 6 typedef struct _s_task_adc_channel_sample { TS_task task; vU8 status; vU8 ch; vU32 adcval; vU32 pool; vU8 n; vU32 out[MAX_OUT_NUM]; }S_TASK_ADC_CHANNEL_SAMPLE; //AD_BLUR_MID 中值滤波 typedef struct _s_task_adc_blur_mid { TS_task task; vU8 ch; vU8 max; vU32 in[MAX_OUT_NUM]; vU32 midval; vU8 n; vU32 out[MAX_OUT_NUM]; }S_TASK_ADC_BLUR_MID; //AD_BLUR_AVG 均值滤波 typedef struct _s_task_adc_blur_avg { TS_task task; vU8 ch; vU8 max; vU32 in[MAX_OUT_NUM]; vU32 avgval; vU8 n; vU32 out[MAX_OUT_NUM]; }S_TASK_ADC_BLUR_AVG; //AD_BLUR_SHIFT 移位滤波 typedef struct _s_task_adc_blur_shift { TS_task task; vU8 ch; vU8 n; vU8 h; vU8 shiftreg[3]; //vU8 max; vU32 in; vU32 sum[3]; vU32 shiftval[3]; vU32 out[3][MAX_OUT_NUM]; }S_TASK_ADC_BLUR_SHIFT; //AD_BLUR_DECIDE 输出判定 typedef struct _s_task_adc_blur_out { TS_task task; vU8 ch; vU32 in[2]; U32 threshold[2]; vU8 h; vU8 oldnum; vU8 newnum; vU32 newout; vU8 n; }S_TASK_ADC_BLUR_OUT; //AD_BLUR_SHOW 显示 typedef struct _s_task_adc_blur_show { TS_task task; vU32 rough_weight; }S_TASK_ADC_BLUR_SHOW; extern S_TASK_ADC_CHANNEL_SAMPLE ts_adc_channel_samples[D_ADC_CHANNEL_NUM]; //extern S_TASK_ADC_BLUR_MID ts_adc_blur_mid[D_ADC_CHANNEL_NUM]; extern S_TASK_ADC_BLUR_AVG ts_adc_blur_avg[D_ADC_CHANNEL_NUM]; extern S_TASK_ADC_BLUR_SHIFT ts_adc_blur_shift[D_ADC_CHANNEL_NUM]; extern S_TASK_ADC_BLUR_OUT ts_adc_blur_out[D_ADC_CHANNEL_NUM]; extern S_TASK_ADC_BLUR_SHOW ts_adc_blur_show; extern void L3_task_adc_init(U8 ch); extern void L3_task_show_init(void); extern void L3_task_adc_handler(U8 ch); extern void L3_task_adc_init_handler(void); extern void L3_task_adc_channel_switch_handler(void); extern void L3_task_adc_filter_show(S_TASK_ADC_BLUR_SHOW *s); #endif // #ifndef _APP_TASK_ADC_H