From 4feb041006a8fdd8735aada5f57a768c9dfc482d Mon Sep 17 00:00:00 2001 From: "mr.zhangsan" Date: Thu, 13 Jun 2024 19:07:58 +0800 Subject: [PATCH] bfysop-v2 --- source/app/source.lnk | Bin 1615 -> 0 bytes source/app/task_adc.c | 418 ------------------------------------- source/app/task_adc.h | 119 ----------- source/app/task_bled.c | 32 ++- source/app/task_nfc.c | 8 +- source/app/task_register.c | 63 ------ source/app/task_register.h | 32 --- source/app/task_rfid.c | 16 +- source/app/task_rs485.c | 10 +- source/bsp/bsp_config.c | 6 +- source/bsp/bsp_config.h | 70 +++---- source/bsp/bsp_key.c | 10 - source/bsp/bsp_led.c | 77 ++++--- source/bsp/bsp_led.h | 3 +- source/bsp/bsp_rfid.c | 1 - 15 files changed, 119 insertions(+), 746 deletions(-) delete mode 100644 source/app/source.lnk delete mode 100644 source/app/task_adc.c delete mode 100644 source/app/task_adc.h delete mode 100644 source/app/task_register.c delete mode 100644 source/app/task_register.h diff --git a/source/app/source.lnk b/source/app/source.lnk deleted file mode 100644 index 08bd271db4c518cc3204036062ee3584e6fd5787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1615 zcmcIkYe*DP6#m>^nqjlGnp!@3ffCucYUQf2_S!`@cgiq}OBQQlWv)8OYGM@q=uPya zpO%za_JFdtR8;h^LX!fuhzNpyXrVz^L{R76ot@DV`qd2Q%$a-7`R+IOerH?&f-ENT zz&+uy{2+oMQM~Ny*xHFHT|rGh!X7xYx`Mj9ZFT%zOwxRiKVSD#Mp+Q2ymxoT_u4i~ zCwqc1N0#fOFwbdYdXf?3BU!vWP%gR5NSQDDyp>yFM+iov|89b7Qg)kidukHp^ohJs zqf|tfuk|7Y^C80rFDkK>MkBCVN8J}A!Q-*YRvB2Np_VI;V%n6a0=4}JhZ!ZX440Mr z1RlDrgv*U%uG27Elzt|`xjNhBDs-#@7HgTykJNuu#KoQBn&6xF6Szq0Dh2+i+{^R_Ij`$k)(Xm5gu+ z12yeOM@&dXwu z6H(rtSg3S9#h@~pRrK>22$N8*rukF^*bPO?c)`of0>f~Lr_3lPyfivZAnW3v^85`+55}#EFyeiV8 z2UJSx0cyymk#S}4XDS)Ls>veBxCRH=f*js-s#;W-Op>LZ(OQD}Ma%-aV{LDrpS{|` zt~~DQxqAL)=i_gT9|{wD=???MO-Q19gMW#J0($bxx4Epy>r>}i<>d65(o*b*SSr8m zNLyb2D(YR&uf4rtC+sVentRPR8-AX%)ZKsiulaHG`v?IV>IpkJPs#f%-+8kH`yFS# zcTR3pi)ZYn@glx(9N7Z0fF9zJKwV)2`=gK9unuH@bq>=s&xR8NaoLK6A1;@U-? zlas&9zR~Z9mQH^$Z8&ti@4|E%AI~#5Io@8JoN;_WIE@L}*eQTBNBk0_C>+h-c@+=# zZW_!@U+d2f;}do={f9~MX)?Zk(-u!c*0Go7YhAeKejVAlpT=X!1X3nF|L=wj-KIak s6iBD_Imycr+m>EDT<$#Mv?n!YRUe9>@e(p32bgAlsNgYn3O~&K28m=(rT_o{ diff --git a/source/app/task_adc.c b/source/app/task_adc.c deleted file mode 100644 index 543da69..0000000 --- a/source/app/task_adc.c +++ /dev/null @@ -1,418 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -///@copyright Copyright (c) 2018, 传控科技 All rights reserved. -///------------------------------------------------------------------------- -/// @file bsp_drv.c -/// @brief bsp @ driver config -///------------------------------------------------------------------------- -/// @version 1.0 -/// @author CC -/// @date 20180331 -/// @note cc_AS_stc02 -////////////////////////////////////////////////////////////////////////////// - -#include "task_adc.h" -#include "../bsp/bsp_config.h" -#include "../bsp/cs1232.h" -#include "../msp/uart0.h" - -//============================================= - -//S_TASK_ADC_CHANNEL_BLUR ts_adc_channel_blurs[D_ADC_CHANNEL_NUM]; -//S_TASK_ADC_CHANNEL_SHOW ts_adc_channel_show; - -S_TASK_ADC_CHANNEL_SAMPLE ts_adc_channel_samples[D_ADC_CHANNEL_NUM]; -//S_TASK_ADC_BLUR_MID ts_adc_blur_mid[D_ADC_CHANNEL_NUM]; -S_TASK_ADC_BLUR_AVG ts_adc_blur_avg[D_ADC_CHANNEL_NUM]; -S_TASK_ADC_BLUR_SHIFT ts_adc_blur_shift[D_ADC_CHANNEL_NUM]; -S_TASK_ADC_BLUR_OUT ts_adc_blur_out[D_ADC_CHANNEL_NUM]; -S_TASK_ADC_BLUR_SHOW ts_adc_blur_show; - -static U8 count_n(u8 n,u8 d) -{ - if(n < d) - { - return MAX_OUT_NUM + n - d ; - } - else - { - return n-d; - } -} - -U32 Abs(S32 a) -{ - if(a < 0) - { - a = -a; - } - return a; -} -//ch是0123,代表4通道 -void L3_task_adc_init(U8 ch) -{ - //通道采集任务初始化 - // L1_task_init(&ts_adc_channel_samples[ch].task); - // L3_task_s_go(ts_adc_channel_samples[ch],D_task_init); - // ts_adc_channel_samples[ch].status = (R.p.adc_ch_status >> ch) & 0x1; - // ts_adc_channel_samples[ch].pool = 0; - // ts_adc_channel_samples[ch].adcval = 0; - // ts_adc_channel_samples[ch].n = 0; - // ts_adc_channel_samples[ch].ch = D_ADCCH_1 + ch; - -#if 0 - //通道中值滤波任务初始化 - L1_task_init(&ts_adc_blur_mid[ch].task); - L3_task_s_go(ts_adc_blur_mid[ch],D_task_init); - ts_adc_blur_mid[ch].n = 0; - ts_adc_blur_mid[ch].max = R.p.adc_blur_mid; - ts_adc_blur_mid[ch].ch = D_ADCCH_1 + ch; -#endif - - //通道均值滤波任务初始化 - L1_task_init(&ts_adc_blur_avg[ch].task); - L3_task_s_go(ts_adc_blur_avg[ch],D_task_init); - ts_adc_blur_avg[ch].max = R.p.adc_blur_avg; - ts_adc_blur_avg[ch].avgval = 0; - ts_adc_blur_avg[ch].n = 0; - ts_adc_blur_avg[ch].ch = D_ADCCH_1 + ch; - - //通道移位滤波任务初始化 - L1_task_init(&ts_adc_blur_shift[ch].task); - L3_task_s_go(ts_adc_blur_shift[ch],D_task_init); - ts_adc_blur_shift[ch].n = 0; - ts_adc_blur_shift[ch].h = 0; - ts_adc_blur_shift[ch].shiftreg[0] = R.p.adc_blur_shift[0]; - ts_adc_blur_shift[ch].shiftreg[1] = R.p.adc_blur_shift[1]; - ts_adc_blur_shift[ch].shiftreg[2] = R.p.adc_blur_shift[2]; - ts_adc_blur_shift[ch].sum[0] = 0; - ts_adc_blur_shift[ch].sum[1] = 0; - ts_adc_blur_shift[ch].sum[2] = 0; - ts_adc_blur_shift[ch].shiftval[0] = 0; - ts_adc_blur_shift[ch].shiftval[1] = 0; - ts_adc_blur_shift[ch].shiftval[2] = 0; - ts_adc_blur_shift[ch].ch = D_ADCCH_1 + ch; - - //输出判定任务初始化 - L1_task_init(&ts_adc_blur_out[ch].task); - L3_task_s_go(ts_adc_blur_out[ch],D_task_init); - ts_adc_blur_out[ch].h= 0; - ts_adc_blur_out[ch].threshold[0] = D_COUNT_ADC(R.p.adc_blur_threshold[0]); //2KG - ts_adc_blur_out[ch].threshold[1] = D_COUNT_ADC(R.p.adc_blur_threshold[1]); //0.5KG - ts_adc_blur_out[ch].newnum = 0; - ts_adc_blur_out[ch].oldnum = 0; - ts_adc_blur_out[ch].newout = 0; - ts_adc_blur_out[ch].n = 0; - ts_adc_blur_out[ch].ch = D_ADCCH_1 + ch; - -#if 0 - //通道切换任务初始化 - //L1_task_init(&ts_adc_channel_switch.task); - L3_task_s_go(ts_adc_channel_switch,D_task_init); -#endif - -} - - -void L3_task_show_init(void) -{ - //显示任务初始化 - L1_task_init(&ts_adc_blur_show.task); - L3_task_s_go(ts_adc_blur_show,D_task_init); - ts_adc_blur_show.rough_weight = 0; -} - - -//ADC Channel 采样任务 -#define D_task_ADC_CHx_SAMPLE_WAIT_LOW 0x53 -#define D_task_ADC_CHx_SAMPLE_READ 0x54 -#define D_task_ADC_CHx_SAMPLE_OUT 0x55 -void L3_task_adc_channel_sample(S_TASK_ADC_CHANNEL_SAMPLE *s) -{ - TTSS_Task_init() - L2_task_go(D_task_ADC_CHx_SAMPLE_WAIT_LOW); - - TTSS_Task_step(D_task_ADC_CHx_SAMPLE_WAIT_LOW) - if(s->status == ADC_CHANNEL_STATUS_READY) //需要判断status是否ready,ready则读取,否则使用pool值 - { - if(0 == L0_2dc_DOUT_AT(s->ch)) - { - L2_task_go(D_task_ADC_CHx_SAMPLE_READ); - } - } - else - { - s->adcval = s->pool; - L2_task_go_Tdelay(D_task_ADC_CHx_SAMPLE_OUT,D_Tdelay_Msec(15)); //延时15ms,模拟一次采样过程 - } - - TTSS_Task_step(D_task_ADC_CHx_SAMPLE_READ) - if(s->status == ADC_CHANNEL_STATUS_READY) //需要重新判断status是否ready,因为channel_switch任务随时可能修改status状态 - { - s->adcval = Abs(L0_ADS1231_readCH(s->ch)); - L2_task_go(D_task_ADC_CHx_SAMPLE_OUT); - } - else - { - L2_task_go(D_task_ADC_CHx_SAMPLE_WAIT_LOW); - } - - TTSS_Task_step(D_task_ADC_CHx_SAMPLE_OUT) - //不判断ready,不管是采集到的真实数据还是pool数据,都继续执行 - s->pool = s->adcval; - s->out[s->n] = s->adcval; - //R.adval[s->ch] = s->out[s->n]; - //L0_uart0_ulhex(R.adval[s->ch]);L0_uart0_0d0a(); - s->n++; - #if 0 - L0_uart0_ulhex(s->out[count_n(s->n,1)]); - L0_uart0_uc(' '); - //L0_uart0_ulhex(ts_adc_blur_mid[s->ch].out[count_n(ts_adc_blur_mid[s->ch].n,1)]); - //L0_uart0_uc(' '); - L0_uart0_ulhex(ts_adc_blur_avg[s->ch].out[count_n(ts_adc_blur_avg[s->ch].n,1)]); - L0_uart0_uc(' '); - L0_uart0_ulhex(ts_adc_blur_shift[s->ch].shiftval[0]); - L0_uart0_uc(' '); - L0_uart0_ulhex(ts_adc_blur_shift[s->ch].shiftval[1]); - L0_uart0_uc(' '); - L0_uart0_ulhex(ts_adc_blur_shift[s->ch].shiftval[2]); - L0_uart0_uc(' '); - L0_uart0_ulhex(R.adval[s->ch]); - L0_uart0_uc(' '); - L0_uart0_ulhex(ts_adc_blur_out[s->ch].oldnum); - L0_uart0_0d0a(); - #endif - - if(s->n >= MAX_OUT_NUM) - { - s->n = 0; - } - L2_task_go(D_task_ADC_CHx_SAMPLE_WAIT_LOW); - - TTSS_Task_end(); -} - -#if 0 -//中值滤波任务 -#define D_task_ADC_CHx_FILTER_MID_GET 0x50 -#define D_task_ADC_CHx_FILTER_MID_COUNT 0x51 -#define D_task_ADC_CHx_FILTER_MID_OUT 0x52 -void L3_task_adc_filter_mid(S_TASK_ADC_BLUR_MID *s) -{ - TTSS_Task_init() - L2_task_go(D_task_ADC_CHx_FILTER_MID_GET); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_GET) - if(ts_adc_channel_samples[s->ch].n >= s->max) - { - U8 i = 0; - for(i=0;imax;i++) - { - s->in[i] = ts_adc_channel_samples[s->ch].out[i]; - } - ts_adc_channel_samples[s->ch].n = 0; - L2_task_go(D_task_ADC_CHx_FILTER_MID_COUNT); - } - - TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_COUNT) - s->midval = Lc_vS32_media(s->in, s->max); - L2_task_go(D_task_ADC_CHx_FILTER_MID_OUT); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_MID_OUT) - s->out[s->n] = s->midval; - //R.adval[s->ch] = s->out[s->n]; - s->n++; - if(s->n >= MAX_OUT_NUM) - { - s->n = 0; - } - L2_task_go(D_task_ADC_CHx_FILTER_MID_GET); - - TTSS_Task_end(); -} -#endif - - -//均值滤波任务 -#define D_task_ADC_CHx_FILTER_AVG_GET 0x50 -#define D_task_ADC_CHx_FILTER_AVG_COUNT 0x51 -#define D_task_ADC_CHx_FILTER_AVG_OUT 0x52 -void L3_task_adc_filter_avg(S_TASK_ADC_BLUR_AVG *s) -{ - TTSS_Task_init() - L2_task_go(D_task_ADC_CHx_FILTER_AVG_GET); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_GET) - if(ts_adc_channel_samples[s->ch].n >= s->max) - { - U8 i = 0; - ts_adc_channel_samples[s->ch].n = 0; - for(i=0;imax;i++) - { - s->in[i] = ts_adc_channel_samples[s->ch].out[i]; - } - L2_task_go(D_task_ADC_CHx_FILTER_AVG_COUNT); - } - - TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_COUNT) - s->avgval = Lc_vU32_avg(s->in,s->max); - L2_task_go(D_task_ADC_CHx_FILTER_AVG_OUT); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_OUT) - s->out[s->n] = s->avgval; - //R.adval[s->ch] = s->out[s->n]; - s->n++; - if(s->n >= MAX_OUT_NUM) - { - s->n = 0; - } - L2_task_go(D_task_ADC_CHx_FILTER_AVG_GET); - - TTSS_Task_end(); - - -} - - -//移位滤波任务 -#define D_task_ADC_CHx_FILTER_SHIFT_GET 0x50 -#define D_task_ADC_CHx_FILTER_SHIFT_COUNT 0x51 -#define D_task_ADC_CHx_FILTER_SHIFT_OUT 0x52 -void L3_task_adc_filter_shift(S_TASK_ADC_BLUR_SHIFT *s) -{ - TTSS_Task_init() - L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_GET); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_GET) - if(s->h != ts_adc_blur_avg[s->ch].n) - { - s->in = ts_adc_blur_avg[s->ch].out[count_n(ts_adc_blur_avg[s->ch].n,1)]; - s->h = ts_adc_blur_avg[s->ch].n; - L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_COUNT); - } - - TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_COUNT) - s->sum[0] -= s->shiftval[0]; - s->sum[0] += s->in; - s->shiftval[0] = s->sum[0] >> s->shiftreg[0]; - s->sum[1] -= s->shiftval[1]; - s->sum[1] += s->in; - s->shiftval[1] = s->sum[1] >> s->shiftreg[1]; - s->sum[2] -= s->shiftval[2]; - s->sum[2] += s->in; - s->shiftval[2] = s->sum[2] >> s->shiftreg[2]; - L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_OUT); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_OUT) - s->out[0][s->n] = s->shiftval[0]; - s->out[1][s->n] = s->shiftval[1]; - s->out[2][s->n] = s->shiftval[2]; - - - //R.adval[s->ch] = s->out[0][s->n] = s->shiftval[0]; - s->n++; - if(s->n >= MAX_OUT_NUM) - { - s->n = 0; - } - L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_GET); - - TTSS_Task_end(); - -} - -//输出判定任务 -#define D_task_ADC_CHx_FILTER_OUT_GET 0x50 -#define D_task_ADC_CHx_FILTER_OUT_COUNT 0x51 -#define D_task_ADC_CHx_FILTER_OUT_CHANGE 0x52 -#define D_task_ADC_CHx_FILTER_OUT_OUT 0x53 -void L3_task_adc_filter_out(S_TASK_ADC_BLUR_OUT *s) -{ - TTSS_Task_init() - L2_task_go(D_task_ADC_CHx_FILTER_OUT_GET); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_GET) - if(s->h != ts_adc_blur_shift[s->ch].n) - { - s->h = ts_adc_blur_shift[s->ch].n; - s->in[0] = ts_adc_blur_avg[s->ch].out[count_n(ts_adc_blur_avg[s->ch].n, 1)]; - s->in[1] = ts_adc_blur_avg[s->ch].out[count_n(ts_adc_blur_avg[s->ch].n, 2)]; - //获取输出曲线val - s->newout = ts_adc_blur_shift[s->ch].out[s->oldnum][count_n(ts_adc_blur_shift[s->ch].n, 1)]; - L2_task_go(D_task_ADC_CHx_FILTER_OUT_COUNT); - } - - TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_COUNT) //根据阀值选择输出的曲线 - //判断选择新曲线 - if(Lc_abs(s->in[0] , s->in[1]) >= s->threshold[0])//2KG - { - s->newnum = 0; - } - else if(Lc_abs(s->in[0] , s->in[1]) >= s->threshold[1]) //0.5KG - { - s->newnum = 1; - } - else - { - s->newnum = 2; - } - //L2_task_go(D_task_ADC_CHx_FILTER_OUT_OUT); - L2_task_go(D_task_ADC_CHx_FILTER_OUT_CHANGE); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_CHANGE) - if(s->newnum != s->oldnum)//切换移位滤波时调整其他滤波的SUM - { - s->oldnum = s->newnum; //不能只调整新值,所有曲线都要一起调整 - //ts_adc_blur_shift[s->ch].sum[1] = (ts_adc_blur_avg[s->ch].out[ts_adc_blur_avg[s->ch].n] * R.adc_blur_avg); - ts_adc_blur_shift[s->ch].sum[0] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[0]; - ts_adc_blur_shift[s->ch].shiftval[0] = s->newout; - ts_adc_blur_shift[s->ch].sum[1] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[1]; - ts_adc_blur_shift[s->ch].shiftval[1] = s->newout; - ts_adc_blur_shift[s->ch].sum[2] = s->newout << ts_adc_blur_shift[s->ch].shiftreg[2]; - ts_adc_blur_shift[s->ch].shiftval[2] = s->newout; - } - L2_task_go(D_task_ADC_CHx_FILTER_OUT_OUT); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_OUT_OUT) - R.adval[s->ch] = s->newout; - //R.adval[s->ch] = ts_adc_channel_samples[s->ch].adcval; - L2_task_go(D_task_ADC_CHx_FILTER_OUT_GET); - - TTSS_Task_end(); - -} - - -//显示任务 -#define D_task_ADC_CHx_SHOW 0x50 -void L3_task_adc_filter_show(S_TASK_ADC_BLUR_SHOW *s) -{ - TTSS_Task_init() - L2_task_go(D_task_ADC_CHx_SHOW); - - TTSS_Task_step(D_task_ADC_CHx_SHOW) - R.ch_weight[0] = D_COUNT_WEIGHT(R.adval[0]); - R.ch_weight[1] = D_COUNT_WEIGHT(R.adval[1]); - R.ch_weight[2] = D_COUNT_WEIGHT(R.adval[2]); - R.ch_weight[3] = D_COUNT_WEIGHT(R.adval[3]); - s->rough_weight = R.ch_weight[0] + R.ch_weight[1] + R.ch_weight[2] + R.ch_weight[3]; //毛重 - if( ABS(R.rough_weight,s->rough_weight) >= 50) //变化超过0.05KG - { - R.rough_weight = s->rough_weight; - R.total_weight = (R.rough_weight > R.total_zweight) ? (R.rough_weight - R.total_zweight) : (0);//净重 - } - L2_task_go_Tdelay(D_task_ADC_CHx_SHOW,D_Tdelay_Msec(15)); //延时15ms - - TTSS_Task_end(); -} - -void L3_task_adc_handler(u8 ch) -{ - L3_task_adc_channel_sample(&ts_adc_channel_samples[ch]); - //L3_task_adc_filter_mid(&ts_adc_blur_mid[ch]); - L3_task_adc_filter_avg(&ts_adc_blur_avg[ch]); - L3_task_adc_filter_shift(&ts_adc_blur_shift[ch]); - L3_task_adc_filter_out(&ts_adc_blur_out[ch]); -} - - - diff --git a/source/app/task_adc.h b/source/app/task_adc.h deleted file mode 100644 index 327b972..0000000 --- a/source/app/task_adc.h +++ /dev/null @@ -1,119 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -///@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 - diff --git a/source/app/task_bled.c b/source/app/task_bled.c index 94c679b..d54905d 100644 --- a/source/app/task_bled.c +++ b/source/app/task_bled.c @@ -27,24 +27,46 @@ void L3_task_bled_init(void) #define D_task_BLED_SET 0x50 +extern U16 L0_led_array_2_dat(); void L3_task_bled_handler(S_TASK_BLED *s) { TTSS_Task_init() L2_task_go(D_task_BLED_SET); + // TTSS_Task_step(D_task_BLED_SET) + // //L0_uart0_sendArrayHex(R.led_status, 14); + // for(i=0;iocr = p->buf[p->num[0] << 8 | p->num[1]]; if(p->head == 0x60 && 1 /*count_ocr() */) { diff --git a/source/app/task_register.c b/source/app/task_register.c deleted file mode 100644 index ac3b364..0000000 --- a/source/app/task_register.c +++ /dev/null @@ -1,63 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -///@copyright Copyright (c) 2018, 传控科技 All rights reserved. -///------------------------------------------------------------------------- -/// @file bsp_drv.c -/// @brief bsp @ driver config -///------------------------------------------------------------------------- -/// @version 1.0 -/// @author CC -/// @date 20180331 -/// @note cc_AS_stc02 -////////////////////////////////////////////////////////////////////////////// - -#include "task_register.h" -#include "../app/app_config.h" -#include "../bsp/bsp_config.h" -#include "../msp/uart0.h" - -//============================================= - -S_TASK_REGVAL_LISTEN s_task_reglisten; - -void L3_task_reglisten_init(void) -{ - L1_task_init(&s_task_reglisten.task); - L3_task_s_go(s_task_reglisten,D_task_init); -} - -//清零任务 -#define D_task_WEIGHT_COUNT 0x50 -#define D_task_IAP 0x51 -void L3_task_reglisten_handle(S_TASK_REGVAL_LISTEN *s) -{ - - TTSS_Task_init() - L2_task_go(D_task_WEIGHT_COUNT); - - TTSS_Task_step(D_task_WEIGHT_COUNT) - if(R.zero != 0) - { - R.total_zweight = R.rough_weight; //皮重 = 毛重 - R.total_weight = (R.rough_weight > R.total_zweight) ? (R.rough_weight - R.total_zweight) : (0);//净重 - R.zero = 0; - } - L2_task_go(D_task_IAP); //延时100ms - - - TTSS_Task_step(D_task_IAP) - if(R.status_eep_save != 0) - { - R.status_eep_save = 0; - L3_reg_2_iap();//写入IAP - } - L2_task_go_Tdelay(D_task_WEIGHT_COUNT,D_Tdelay_Msec(100)); //延时100ms - - - TTSS_Task_end(); - -} - - - - - diff --git a/source/app/task_register.h b/source/app/task_register.h deleted file mode 100644 index d675a43..0000000 --- a/source/app/task_register.h +++ /dev/null @@ -1,32 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -///@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_REG_H -#define _APP_TASK_REG_H - -#include "../ctask/task.h" -#include "../clib/clib.h" - -typedef struct _s_task_reglisten -{ - TS_task task; -}S_TASK_REGVAL_LISTEN; - -extern S_TASK_REGVAL_LISTEN s_task_reglisten; - -extern void L3_task_reglisten_init(void); -extern void L3_task_reglisten_handle(S_TASK_REGVAL_LISTEN *s); - - -#endif // #ifndef _APP_TASK_ADC_H - diff --git a/source/app/task_rfid.c b/source/app/task_rfid.c index b54517b..0e1f7ad 100644 --- a/source/app/task_rfid.c +++ b/source/app/task_rfid.c @@ -14,7 +14,7 @@ #include "../app/app_config.h" #include "../bsp/bsp_config.h" #include "../msp/uart0.h" -#include "../msp/uart3.h" +#include "../msp/uart4.h" S_TASK_RFID _s_task_rfid; @@ -45,24 +45,24 @@ void L3_task_rfid_handler(S_TASK_RFID *s) L0_uart0_uchex(sizeof(rfidLoopRead) / sizeof(U8)); //1.设置天线 - L0_uart3_sendArray(rfidSetChannelCmd, sizeof(rfidSetChannelCmd) / sizeof(U8)); + L0_uart4_sendArray(rfidSetChannelCmd, sizeof(rfidSetChannelCmd) / sizeof(U8)); NOP10(); //2.设置功率 - L0_uart3_sendArray(rfidSetWCmd, sizeof(rfidSetWCmd) / sizeof(U8)); + L0_uart4_sendArray(rfidSetWCmd, sizeof(rfidSetWCmd) / sizeof(U8)); NOP10(); //3.选择掩码 - L0_uart3_sendArray(rfidSelCmd, sizeof(rfidSelCmd) / sizeof(U8)); + L0_uart4_sendArray(rfidSelCmd, sizeof(rfidSelCmd) / sizeof(U8)); NOP10(); //4.启动轮询 - L0_uart3_sendArray(rfidLoopRead, sizeof(rfidLoopRead) / sizeof(U8)); + L0_uart4_sendArray(rfidLoopRead, sizeof(rfidLoopRead) / sizeof(U8)); NOP10(); L2_task_go(D_task_RFID_READ); TTSS_Task_step(D_task_RFID_READ) - if(ts_uart[uNum3].r.ok == 1) + if(ts_uart[uNum4].r.ok == 1) { - ts_uart[uNum3].r.ok = 0; + ts_uart[uNum4].r.ok = 0; parse_rfid_pkg(); } //read next @@ -81,7 +81,7 @@ void L3_task_rfid_handler(S_TASK_RFID *s) //帧尾:7E void parse_rfid_pkg() { - TPC_RFID *p = (TPC_RFID *) ts_uart[uNum3].r.buf; + TPC_RFID *p = (TPC_RFID *) ts_uart[uNum4].r.buf; p->ocr = p->buf[p->num[0] << 8 | p->num[1]]; p->tail = p->buf[p->num[0] << 8 | p->num[1] + 1]; if(p->head == 0xBB && p->tail == 0x7E && 1 /*count_ocr() */) diff --git a/source/app/task_rs485.c b/source/app/task_rs485.c index 1ce11e5..5bd7540 100644 --- a/source/app/task_rs485.c +++ b/source/app/task_rs485.c @@ -14,7 +14,7 @@ #include "../app/app_config.h" #include "../bsp/bsp_config.h" #include "../msp/uart0.h" -#include "../msp/uart4.h" +#include "../msp/uart2.h" S_TASK_RS485 _s_task_rs485; TPC_RS485 tpc_rs485; @@ -41,9 +41,9 @@ void L3_task_rs485_handler(S_TASK_RS485 *s) L2_task_go(D_task_RS485_READ); TTSS_Task_step(D_task_RS485_READ) - if(ts_uart[uNum4].r.ok == 1) + if(ts_uart[uNum2].r.ok == 1) { - ts_uart[uNum4].r.ok = 0; + ts_uart[uNum2].r.ok = 0; parse_rs485_pkg(); } //read next @@ -61,7 +61,7 @@ void L3_task_rs485_handler(S_TASK_RS485 *s) //OCR:1个字节,代表校验和, = 从SlaveId开始 - DATA结束的所有字节之和。 void parse_rs485_pkg() { - TPC_RS485 *p = (TPC_RS485 *) ts_uart[uNum4].r.buf; + TPC_RS485 *p = (TPC_RS485 *) ts_uart[uNum2].r.buf; p->ocr = p->buf[p->num[0] << 8 | p->num[1]]; if(p->head[0] == 0xAA && 1 /*count_ocr() */) { @@ -94,7 +94,7 @@ void parse_rs485_pkg() //构造响应包,并且返回 acklen = constructor_rs485_ack(); //写出 - L0_uart4_sendArray((U8*)&tpc_rs485_ack, acklen); + L0_uart2_sendArray((U8*)&tpc_rs485_ack, acklen); //日志 print_rs485_pkg(p); } diff --git a/source/bsp/bsp_config.c b/source/bsp/bsp_config.c index 99a8720..69ec804 100644 --- a/source/bsp/bsp_config.c +++ b/source/bsp/bsp_config.c @@ -77,9 +77,9 @@ void L0_board_config(void) BITN_0(P_SW2 ,BITN2);// rxd2 p1.0 txd2 p1.1 #endif - //485 RE/DE 配置推完输出 P00,P01 - D_HighI_P0(BITN0); - D_HighI_P0(BITN1); + //485 RE/DE 配置推完输出 P47,P14 + D_HighI_P4(BITN7); + D_HighI_P1(BITN4); //WDT #if (TYPE_WDT_ENABLE == D_WDT_STATUS) diff --git a/source/bsp/bsp_config.h b/source/bsp/bsp_config.h index 5b05aa9..bff21ce 100644 --- a/source/bsp/bsp_config.h +++ b/source/bsp/bsp_config.h @@ -82,32 +82,34 @@ #define D_uart0_SBIT SBIT_1 #define D_PIN_UART0 PIN_UART0_Rxd_30_Txd_31 //RXD, TXD #define D_uart2_BRT BRT_115200 - #define D_PIN_UART2 PIN_UART2_Rxd_46_Txd_47 //RXD2_2, TXD2_2 + #define D_PIN_UART2 PIN_UART2_Rxd_10_Txd_11 //RXD2, TXD2 #define D_uart3_BRT BRT_115200 - #define D_PIN_UART3 PIN_UART3_Rxd_50_Txd_51 //RXD3_2, TXD3_2 + #define D_PIN_UART3 PIN_UART3_Rxd_00_Txd_01 //RXD3, TXD3 #define D_uart4_BRT BRT_115200 #define D_PIN_UART4 PIN_UART4_Rxd_02_Txd_03 //RXD4, TXD4 //485配置 - #define D_UART4_485_TYPE TYPE_485_SLAVER //UART4启用485 - #if(D_UART4_485_TYPE == TYPE_485_SLAVER) - #define D_UART4_485_SLAVER_ID_BROADCAST 0xFF //485从机总是响应0xFF消息 - #define D_UART4_485_SLAVER_ID 0x01 //板卡作为485从机 slaverId + #define D_UART2_485_TYPE TYPE_485_SLAVER //UART4启用485 + #if(D_UART2_485_TYPE == TYPE_485_SLAVER) + #define D_UART2_485_SLAVER_ID_BROADCAST 0xFF //485从机总是响应0xFF消息 + #define D_UART2_485_SLAVER_ID 0x03 //板卡作为485从机 slaverId #endif - #define D_UART4_485_TX() P01 = 1; P00=1; - #define D_UART4_485_RX() P01 = 0; P00=0; + #define D_485_DE P47 + #define D_485_RE P14 + #define D_UART2_485_TX() D_485_DE = 1; D_485_RE = 1; + #define D_UART2_485_RX() D_485_DE = 0; D_485_RE = 0; #define D_UART0_485_TYPE TYPE_485_NONE //UART0不启用485 #define D_UART0_485_TX() #define D_UART0_485_RX() - #define D_UART2_485_TYPE TYPE_485_NONE //UART2不启用485 - #define D_UART2_485_TX() - #define D_UART2_485_RX() - - #define D_UART3_485_TYPE TYPE_485_NONE //UART3不启用485 + #define D_UART3_485_TYPE TYPE_485_NONE //UART2不启用485 #define D_UART3_485_TX() - #define D_UART3_485_RX() + #define D_UART3_485_RX() + + #define D_UART4_485_TYPE TYPE_485_NONE //UART3不启用485 + #define D_UART4_485_TX() + #define D_UART4_485_RX() //MODBUS协议配置 //#define D_MODBUS_ENABLE //MODBS启用开关,如果不使用modbus,可以注释掉本行 @@ -124,34 +126,28 @@ #define BLED0_OFF 1 //0 1 2 3 4 5 6 //13 12 11 10 9 8 7 - #define BLED0 P42 //NET9 - #define BLED1 P41 //NET10 - #define BLED2 P37 //NET11 - #define BLED3 P35 //NET12 - #define BLED4 P16 //NET13 - #define BLED5 P15 //NET14 - #define BLED6 P14 //NET15 - #define BLED7 P47 //NET16 - #define BLED8 P11 //NET17 - #define BLED9 P26 //NET18 - #define BLED10 P25 //NET19 - #define BLED11 P21 //NET20 - #define BLED12 P44 //NET21 - #define BLED13 P22 //NET22 + #define BLED0 P52 //NET9 + + //LED驱动芯片 + #define MBI_SDI P07 + #define MBI_CLK P06 + #define MBI_LE P05 + #define MBI_OE P53 + //K->Key, R->ROW, C->COL - #define KR1 P36 //NET1 - #define KR2 P17 //NET2 - #define KR3 P06 //NET3 - #define KR4 P43 //NET4 - #define KC1 P10 //NET5 - #define KC2 P07 //NET6 - #define KC3 P13 //NET7 - #define KC4 P20 //NET8 + #define KR1 P50 //NET1 + #define KR2 P15 //NET2 + #define KR3 P27 //NET3 + #define KR4 P25 //NET4 + #define KC1 P46 //NET5 + #define KC2 P45 //NET6 + #define KC3 P26 //NET7 + #define KC4 P34 //NET8 //RFID EN -- 暂未定义 #define RFID_ENABLE 1 #define RFID_DISABLE 0 - #define RFID_EN_PIN P32 //RFID-EN >1.1v使能 + #define RFID_EN_PIN P04 //RFID-EN >1.1v使能 //EEP存储地址定义 diff --git a/source/bsp/bsp_key.c b/source/bsp/bsp_key.c index 6024f6d..a96be7e 100644 --- a/source/bsp/bsp_key.c +++ b/source/bsp/bsp_key.c @@ -5,16 +5,6 @@ U32 timeout = 0x3FFFFF; U8 bsp_key_init(void) { - D_stdIO_P3(BITN6); - D_stdIO_P1(BITN7); - D_stdIO_P0(BITN6); - D_stdIO_P4(BITN3); - - D_stdIO_P1(BITN0); - D_stdIO_P0(BITN7); - D_stdIO_P1(BITN3); - D_stdIO_P2(BITN0); - //初始化为高电平 KR1 = KR2 = KR3 = KR4 = 1; //初始化为高电平 diff --git a/source/bsp/bsp_led.c b/source/bsp/bsp_led.c index 852ff8b..3e5114d 100644 --- a/source/bsp/bsp_led.c +++ b/source/bsp/bsp_led.c @@ -2,29 +2,13 @@ void bsp_led_init(void) { - //LED0 - D_stdIO_P2(BITN3); - - //BLED0-13 - D_stdIO_P4(BITN2); - D_stdIO_P4(BITN1); - D_stdIO_P3(BITN7); - D_stdIO_P3(BITN5); - D_stdIO_P1(BITN6); - D_stdIO_P1(BITN5); - D_stdIO_P1(BITN4); - D_stdIO_P4(BITN7); - D_stdIO_P1(BITN1); - D_stdIO_P2(BITN6); - D_stdIO_P2(BITN5); - D_stdIO_P2(BITN1); - D_stdIO_P4(BITN4); - D_stdIO_P2(BITN2); - //初始化 - BLED0 = BLED1 = BLED2 = BLED3 = BLED4 = BLED5 = BLED6 = BLED0_OFF; - BLED7 = BLED8 = BLED9 = BLED10 = BLED11 = BLED12 = BLED13 = BLED0_OFF; LED0 = LED0_OFF; + BLED0 = BLED0_OFF; + //BLED1 = BLED2 = BLED3 = BLED4 = BLED5 = BLED6 = BLED0_OFF; + //BLED7 = BLED8 = BLED9 = BLED10 = BLED11 = BLED12 = BLED13 = BLED0_OFF; + MBI_CLK = 0; + MBI_SDI = 0; } void bsp_led_set(U8 status) @@ -32,24 +16,37 @@ void bsp_led_set(U8 status) LED0 = status; } -void bsp_bled_set(U8 index, U8 status) +void bsp_bled0_set(U8 status) +{ + BLED0 = status; +} + +extern void delay(unsigned int i); +void bsp_bled_set_multi(unsigned int dat) +{ + unsigned char i; + + //其他led通过芯片驱动 + for(i=0; i<16; i++) + { + MBI_SDI = (dat & 0x8000) ? 1 : 0; + MBI_CLK = 1; + dat <<= 1; + MBI_CLK = 0; + } + + //锁存 + MBI_LE = 1; + delay(100); + MBI_LE = 0; + + //输出 + delay(1000); + MBI_OE = 0; +} + +void delay(unsigned int i) { - switch (index) - { - case 0: BLED0 = status; break; - case 1: BLED1 = status; break; - case 2: BLED2 = status; break; - case 3: BLED3 = status; break; - case 4: BLED4 = status; break; - case 5: BLED5 = status; break; - case 6: BLED6 = status; break; - case 7: BLED7 = status; break; - case 8: BLED8 = status; break; - case 9: BLED9 = status; break; - case 10:BLED10 = status; break; - case 11:BLED11 = status; break; - case 12:BLED12 = status; break; - case 13:BLED13 = status; break; - default: break; - } + while(i>0) + i--; } \ No newline at end of file diff --git a/source/bsp/bsp_led.h b/source/bsp/bsp_led.h index e6bb12d..7e48579 100644 --- a/source/bsp/bsp_led.h +++ b/source/bsp/bsp_led.h @@ -4,8 +4,9 @@ #include "bsp_config.h" extern void bsp_led_init(void); -extern void bsp_bled_set(U8 index, U8 status); extern void bsp_led_set(U8 status); +extern void bsp_bled0_set(U8 status); +extern void bsp_bled_set_multi(unsigned int dat); #define BLED_SET_STATUS(N, status); do { \ BLED##N = status; \ diff --git a/source/bsp/bsp_rfid.c b/source/bsp/bsp_rfid.c index e816fd3..9f0f550 100644 --- a/source/bsp/bsp_rfid.c +++ b/source/bsp/bsp_rfid.c @@ -3,7 +3,6 @@ U8 bsp_rfid_init(void) { - D_stdIO_P3(BITN2); bsp_rfid_en(RFID_ENABLE); return 0; }