From 820a228ca889dfdbf8c2653b1c0f6d112ef50226 Mon Sep 17 00:00:00 2001 From: Zhangwen <13970730+mkc46119@user.noreply.gitee.com> Date: Tue, 3 Sep 2024 11:36:32 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E5=8E=9F=E7=A7=B0=E9=87=8D?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=A7=BB=E6=A4=8D=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=9B=B8=E5=85=B3IO=E7=AE=A1=E8=84=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keilp/stcTTSS2_W5.uvprojx | 5 + source/app/app_weight.c | 105 ++++++--- source/app/main.c | 61 ++--- source/app/main.h | 1 + source/asp/asp_lowpower.c | 2 +- source/asp/asp_schain.c | 405 +++----------------------------- source/bsp/TTSSbsp/bsp_config.h | 30 ++- source/bsp/backu/bsp_cs1232.h | 72 +++--- source/bsp/bsp_cs1232.h | 90 +++---- source/msp/uart/msp_UART2.c | 27 ++- source/msp/uart/msp_UART2.h | 4 +- source/msp/uart/msp_uart1.h | 1 - source/msp/uart/msp_uartN.c | 6 +- source/tpc/tpc_x.h | 6 + 14 files changed, 252 insertions(+), 563 deletions(-) diff --git a/keilp/stcTTSS2_W5.uvprojx b/keilp/stcTTSS2_W5.uvprojx index b9ecc38..275f8af 100644 --- a/keilp/stcTTSS2_W5.uvprojx +++ b/keilp/stcTTSS2_W5.uvprojx @@ -378,6 +378,11 @@ 1 ..\source\app\app_config.c + + msp_UART2.c + 1 + ..\source\msp\uart\msp_UART2.c + diff --git a/source/app/app_weight.c b/source/app/app_weight.c index dcef016..d525291 100644 --- a/source/app/app_weight.c +++ b/source/app/app_weight.c @@ -25,7 +25,7 @@ #define D_Rsensor_out_D_85kg 0x244D */ -#define D_Rsensor_out_D_0kg 0x18D9 +#define D_Rsensor_out_D_0kg 0x18D9 #define D_Rsensor_out_D_20kg 0x1c2c #define D_Rsensor_out_D_85kg 0x26f9 @@ -127,39 +127,29 @@ void L3_task_weight_handler(TS_TASK_weight_ *s) TTSS_Task_init(): L0_waitFree_uartN(0); - - /* - printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[0].offset,ts_adc_samples[0].offset); - printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[1].offset,ts_adc_samples[1].offset); - printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[2].offset,ts_adc_samples[2].offset); - printf("\r\nR.sd.zeroout= %d = 0x%4x offset %d = 0x%4x", R.sd.zeroout, R.sd.zeroout,ts_adc_samples[3].offset,ts_adc_samples[3].offset); - - printf('4'); - - */ s->slow = 0; - s->zero = 0;s->kgx10_zero = 0; + s->zero = 0; + s->kgx10_zero = 0; printfs(" L3_task_weight_handler "); - L2_task_go(D_task_WEIGHT_get); + TTSS_Task_step(D_task_WEIGHT_get): if(1 == ts_adc_samples[D_Wch4].ok) - {// + { ts_adc_samples[0].ok = 0; ts_adc_samples[1].ok = 0; ts_adc_samples[2].ok = 0; ts_adc_samples[3].ok = 0; s->slow ++; - // L0_uart0_uc('%'); L2_task_go(D_task_WEIGHT_Sline); } - TTSS_Task_step(D_task_WEIGHT_Sline): + + TTSS_Task_step(D_task_WEIGHT_Sline): if (s->slow >= 1)////采样减速 {s->slow = 0; ///调用asp——adc中的输出 out3 /************/ ///cc 2023/04/06--8:9:18 选择使用哪一条滤波线 - ts_adc_samples[0].out5 = ts_adc_samples[0].ts_SAa.out4_shift; ts_adc_samples[1].out5 = ts_adc_samples[1].ts_SAa.out4_shift; ts_adc_samples[2].out5 = ts_adc_samples[2].ts_SAa.out4_shift; @@ -170,26 +160,54 @@ void L3_task_weight_handler(TS_TASK_weight_ *s) { L2_task_go(D_task_WEIGHT_get); } - //L2_task_go(D_task_WEIGHT_getADC); - TTSS_Task_step(D_task_WEIGHT_getADC): + //L2_task_go(D_task_WEIGHT_getADC); - + TTSS_Task_step(D_task_WEIGHT_getADC): ////四个传感器相加后平均 - tst_weight.sum32 = ts_adc_samples[0].out5; + tst_weight.sum32 = ts_adc_samples[0].out5; tst_weight.sum32 += ts_adc_samples[1].out5; tst_weight.sum32 += ts_adc_samples[2].out5; tst_weight.sum32 += ts_adc_samples[3].out5; + + // L0_uart1_str("ts_adc_samples[0].out5: "); + // L0_uart1_ushex(ts_adc_samples[0].out5); + // L0_uart1_0d0a(); + // L0_uart1_str("ts_adc_samples[1].out5: "); + // L0_uart1_ushex(ts_adc_samples[1].out5); + // L0_uart1_0d0a(); + // L0_uart1_str("ts_adc_samples[2].out5: "); + // L0_uart1_ushex(ts_adc_samples[2].out5); + // L0_uart1_0d0a(); + // L0_uart1_str("ts_adc_samples[3].out5: "); + // L0_uart1_ushex(ts_adc_samples[3].out5); + // L0_uart1_0d0a(); + // L0_uart1_str("tst_weight.sum32: "); + // L0_uart1_ushex(tst_weight.sum32); + // L0_uart1_0d0a(); + + tst_weight.out6 = tst_weight.sum32 >> 2; + + // L0_uart1_str("tst_weight.sum32 >> 2: "); + // L0_uart1_ushex(tst_weight.out6); + // L0_uart1_0d0a(); - tst_weight.out6 = tst_weight.sum32 >>2; + L2_task_go(D_task_WEIGHT_CAL); - L2_task_go(D_task_WEIGHT_CAL); TTSS_Task_step(D_task_WEIGHT_CAL): - tst_weight.adc32 = tst_weight.out6; - + + // L0_uart1_ushex(tst_weight.adc32); + // L0_uart1_0d0a(); + L3_task_weight_cal(); - L2_task_go(D_task_WEIGHT_out); + // L1_uart1_uc('u'); + // L0_uart1_0d0a(); + // L0_uart1_ushex(tst_weight.adc32); + // L0_uart1_0d0a(); + + L2_task_go(D_task_WEIGHT_out); + TTSS_Task_step(D_task_WEIGHT_out): if(tst_weight.kgx10 > tst_weight.kgx10_zero) { @@ -198,17 +216,13 @@ void L3_task_weight_handler(TS_TASK_weight_ *s) { s->kgx10_out = 0 ; } -//// D_LED1_REV(); L4_weight_out(); D_LED1_REV(); - - - - /// L4_weight_print();///需要调试的时候打开!!!!!!!!!!!!!!! + // L4_weight_print();///需要调试的时候打开!!!!!!!!!!!!!!! L2_task_Tdelay_go(D_Tdelay_200ms, D_task_WEIGHT_get); /// L2_task_go(D_task_WEIGHT_get); - TTSS_Task_step(D_task_WEIGHT_zero): - + TTSS_Task_step(D_task_WEIGHT_zero): L2_task_go(D_task_WEIGHT_get); + TTSS_Task_end(); } @@ -221,13 +235,14 @@ void L3_task_weight_cal(void) { tst_weight.adc32 = (vU32)S.weight_SPara.ts_WPoint[0].adc; } - ///0-0-40KG + ///0-0-40KG tst_weight.t32a = (tst_weight.adc32-(vU32)S.weight_SPara.ts_WPoint[0].adc);////有可能<0 tst_weight.t32b = (vU32)(S.weight_SPara.ts_WPoint[1].adc-S.weight_SPara.ts_WPoint[0].adc); tst_weight.t32a *= (vU32)(S.weight_SPara.ts_WPoint[1].kg - S.weight_SPara.ts_WPoint[0].kg); tst_weight.t32a /= tst_weight.t32b; - }else + } + else { ///40KG 80KG tst_weight.t32a = (vU32)(tst_weight.adc32-S.weight_SPara.ts_WPoint[1].adc);////有可能大于b tst_weight.t32b = (vU32)(S.weight_SPara.ts_WPoint[2].adc-S.weight_SPara.ts_WPoint[1].adc); @@ -359,6 +374,12 @@ void L3_weight_ONdebug(u8 filter)//// ON listen function // printf(" \r\n0->filter=%X ", (int)filter); // printf(" \r\n1->filter=%X slaveId=%X cmd=%X len = %d ", (int)pd485->filter,(int)pd485->slaveId, (int)pd485->cmd, (int)ts_Urec[D_UART1].num); // D_LED2_REV(); + + // AA 02 10 00 02 A3 B4 33 查询 + // AA 02 20 00 03 00 00 00 6C 校准第0个点 00kg + // AA 02 20 00 03 01 00 64 6C 校准第1个点 20kg + // AA 02 20 00 03 02 02 BC 6C 校准第2个点 40kg + // AA 02 30 00 00 33 清零 if(filter == pd485->filter) { // L1_uartD_Arrayhex((u8*)pd,9); @@ -508,12 +529,22 @@ void L4_weight_out(void) ts_weight_out.cmd = 0x10; ts_weight_out.num[0] = (dnum >> 8) & 0xFF; ts_weight_out.num[1] = dnum & 0xFF; + + // L0_uart1_0d0a(); + // L0_uart1_str("ts_adc_samples[0].out1_adc: "); + // L0_uart1_ushex(ts_adc_samples[0].out1_adc); + // ts_weight_out.sensor_adc[0]=0x1234; + ts_weight_out.sensor_adc[0]=ts_adc_samples[0].out1_adc; ts_weight_out.sensor_adc[1]=ts_adc_samples[1].out1_adc; ts_weight_out.sensor_adc[2]=ts_adc_samples[2].out1_adc; ts_weight_out.sensor_adc[3]=ts_adc_samples[3].out1_adc; - ts_weight_out.kgx10_out = tst_weight.kgx10_out; - ts_weight_out.adc32= tst_weight.adc32;////采样值用作校准时使用 + ts_weight_out.kgx10_out = tst_weight.kgx10_out; + ts_weight_out.adc32 = tst_weight.adc32;//采样值用作校准时使用 + + // L0_uart1_us(ts_weight_out.adc32); + + // ts_weight_out.adc32= 0x1234;////采样值用作校准时使用 ts_weight_out.ocr =0x33; L1_uartD_Array((u8 *)&ts_weight_out,total); } diff --git a/source/app/main.c b/source/app/main.c index 2cce03e..6f0632d 100644 --- a/source/app/main.c +++ b/source/app/main.c @@ -1,31 +1,6 @@ -////////////////////////////////////////////////////////////////////////// -/// COPYRIGHT NOTICE -/// Copyright (c) 2023 CCSENS -/// All rights reserved. -/// -/// @file main.c -/// @brief main app -/// - -/// 下面是一个含有两个参数的函数的注释说明(简述) -/// -/// 这里写该函数的详述信息 -/// @param a 被测试的变量(param描述参数) -/// @param s 指向描述测试信息的字符串 -/// @return 测试结果(return描述返回值) -/// @see Test() (本函数参考其它的相关的函数,这里作一个链接) -/// @note (note描述需要注意的问题) - -//=============================================== -//寄存器头文件 -//=============================================== - -/// 20221023_175541 CCmodify - #include "main.h" #include "asp_lowpower.h" - void L0_RTC_init(void) { P_SW2 = 0x80; @@ -72,15 +47,16 @@ void L0_main_init(void) { int r = 0; Lc_delay_ms(200); - L0_main_initled(); - CLKDIV = 0;////不分频,使用focs + L0_main_initled(); //指示灯 + CLKDIV = 0; //不分频,使用focs - L0_uart1_open(); + L0_uart1_open(); //打开串口1 + L0_uart2_open(); //打开串口2 - L3_debug_drv_init(); - L1_task_tick_init(); - L0_timer0_Init(); - ET0 = 1; + L3_debug_drv_init(); //未调用 + L1_task_tick_init(); //TTSS-tick初始化 + L0_timer0_Init(); //定时器0初始化 + ET0 = 1; //允许定时器中断T0 printf1("\r\nD_sys_MainFre %ld",D_sys_MainFre); @@ -105,24 +81,25 @@ void main(void) while(1) { - if(1 == s_nos_tick.t1s_heartbeat)/// + if(1 == s_nos_tick.t1s_heartbeat) { s_nos_tick.t1s_heartbeat = 0; - ///L1_uartD_uc('.'); - // D_LED2_REV(); + L1_uartD_uc('.'); + D_LED1_REV(); + // L0_uart2_uc('Q'); + // L0_uart2_0d0a(); + // L0_uart2_ul(0XAABBCCDD); + // L0_uart1_ul(0XAABBCCDD); + // L0_uart2_0d0a(); } - - // TTSS_run_every(s_nos_tick.stamp,40) - // D_LED1_REV(); - // L4_weight_out(); - // ///55 0D 0C 90 F5 77 FF 52 80 00 00 00 33 - // TTSS_run_every_end if(L2_debug_ONcomand()) { - L3_weight_ONdebug(D_cmd_filter_weight);///fe xx xx/// + L3_weight_ONdebug(D_cmd_filter_weight); } L3_task_weight_handler(&tst_weight); + + // L0_uart1_us(0x1234); } } diff --git a/source/app/main.h b/source/app/main.h index 3f069c0..aaeccff 100644 --- a/source/app/main.h +++ b/source/app/main.h @@ -41,6 +41,7 @@ //#include "../bsp/bsp_485.h" ///#include "msp_time2.h" #include "msp_uart1.h" +#include "msp_uart2.h" /// /// diff --git a/source/asp/asp_lowpower.c b/source/asp/asp_lowpower.c index 973102f..575048e 100644 --- a/source/asp/asp_lowpower.c +++ b/source/asp/asp_lowpower.c @@ -49,7 +49,7 @@ void L0_uart1_open(void) } void L0_uart2_open(void) {// -//// L0_uart2_buf_init(); + L0_uart2_buf_init(); EA = 1; L0_uart1_str("\r\nuart2 open"); } diff --git a/source/asp/asp_schain.c b/source/asp/asp_schain.c index 0dbfdd8..6a1bd78 100644 --- a/source/asp/asp_schain.c +++ b/source/asp/asp_schain.c @@ -24,7 +24,7 @@ #define D_ch2_0kg_out1_adc (vS16)0xFFB3 #define D_ch3_0kg_out1_adc (vS16)0x00A4 #define D_ch4_0kg_out1_adc (vS16)0xFFEA -/////需要通过测试配置 如果不在意符号位 可以优化 diao +/////需要通过测试配置 如果不在意符号位 可以优化掉 #define D_ch1_out1_offset (vS16)(D_ch1_wantline-D_ch1_0kg_out1_adc) #define D_ch2_out1_offset (vS16)(D_ch2_wantline-D_ch2_0kg_out1_adc) #define D_ch3_out1_offset (vS16)(D_ch3_wantline-D_ch3_0kg_out1_adc) @@ -50,34 +50,34 @@ TS_adc_SPara_ TS_adc_SPara[D_ADC_CHANNEL_NUM]= { - 'A',//0 1 u8 rev1; - 0,//2 3 u8 ch; - D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - D_ch1_out1_offset,//3 4 vU16 offset; - 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 - - 'A',//0 1 u8 rev1; - 1,//2 3 u8 ch; - D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - D_ch2_out1_offset,//3 4 vU16 offset; - 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 - - 'A',//0 1 u8 rev1; - 2,//2 3 u8 ch; - D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - D_ch3_out1_offset,//3 4 vU16 offset; - 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - 5,//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 - - - 'A',//0 1 u8 rev1; - 3,//2 3 u8 ch; - D_ch1_wantline,///vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 - D_ch4_out1_offset,//3 4 vU16 offset; - 2,//4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 - 5//5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + 'A', //0 1 u8 rev1; + 0, //2 3 u8 ch; + D_ch1_wantline, //vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + D_ch1_out1_offset, //3 4 vU16 offset; + 2, //4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 5, //5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + + 'A', //0 1 u8 rev1; + 1, //2 3 u8 ch; + D_ch1_wantline, //vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + D_ch2_out1_offset, //3 4 vU16 offset; + 2, //4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 5, //5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + + 'A', //0 1 u8 rev1; + 2, //2 3 u8 ch; + D_ch1_wantline, //vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + D_ch3_out1_offset, //3 4 vU16 offset; + 2, //4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 5, //5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 + + + 'A', //0 1 u8 rev1; + 3, //2 3 u8 ch; + D_ch1_wantline, //vU16 wantline; ///固定的硬件参数(例如称重中的0kg,压力中的0压力)时想要输出的adc的值 + D_ch4_out1_offset, //3 4 vU16 offset; + 2, //4 5 vU8 ashift; ///移动的位数 1-2 2-4 3-8 4-16 + 5 //5 6 vU8 bshift; ///移动的位数 1-2 2-4 3-8 4-16 }; @@ -264,7 +264,7 @@ L3_task_weight_cal(); void L2_task_adc_sample(TS_task_adc_sample *s) { TTSS_Task_init(): - ////cc 初始化尽量放到这里,不要放到main ——init中,减少系统启动的时间 + ////cc 初始化尽量放到这里,不要放到main——init中,减少系统启动的时间 s->jitter_start = 0; s->ok = 0; ////printf("\r\nADC_SAMPLE\r\n"); /* @@ -273,8 +273,8 @@ void L2_task_adc_sample(TS_task_adc_sample *s) ts_adc_samples[s->pSPara->ch].pSPara->offset,ts_adc_samples[s->pSPara->ch].pSPara->offset); */ - printf1("\r\nADC_SAMPLE init ch(%d) ", (int)s->pSPara->ch); - L1_uartD_waitFree() ; + printf1("\r\nADC_SAMPLE init ch(%d)",(int)s->pSPara->ch); + L1_uartD_waitFree(); s->firstRun = 1; @@ -379,347 +379,6 @@ void L2_task_adc_sample(TS_task_adc_sample *s) } #if 0 -void L3_out_zero(u8 ch) -{ - vS16 t,m; - - - t = ts_adc_samples[ch].out1_adc; - m = ts_adc_samples[ch].SPara.wantline; - m -= t; - ts_adc_samples[ch].SPara.offset = (vU16)m; -/// L0_waitFree_uartN(0);///混搭使用printf的时候必须加上 -/// printf("\r\nzeroout = %4x offset= 0x%4x\r\n", ts_adc_samples[ch].zeroout,ts_adc_samples[ch].offset); - -/// D_ADC_OFFSET(ch) = ts_adc_samples[ch].zeroout - ts_adc_samples[ch].out1; -} - - -vU16 L3_out_offset222(u8 ch,vU16 t16) -{ - vU16 out; - - /// L0_uart0_ushex(t16); L0_uart0_uc(' '); - if(t16 & 0x8000) //最高位为1,<0则 - { - t16 = 0xffFF - t16;///转变为正数 - ///*d = D_ADC_OFFSET - t16; - out = ts_adc_samples[ch].SPara.offset - t16; -// L0_uart0_uc('$'); L0_uart0_ushex(ts_adc_samples[ch].offset);L0_uart0_uc(' '); - }else - { - out = t16 + ts_adc_samples[ch].SPara.offset; - } -// L0_uart0_ushex(out);L0_uart0_uc(' '); L0_uart0_uc('R');L0_uart0_0d0a(); - return out; -} - -vU16 L3_out_tran2(vU32 rdata) -{ - vU16 t16; -//// L0_ADS1231_readCH2(0,&rdata); - // L0_uart0_uc('0'+ch); L0_uart0_uc(0x09); - // L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); - if (rdata > 0x007fFFff) - { - rdata >>= D_sensor_zoom; ///fixme:此处正负差和移位不一致需要谨慎 - rdata |= D_sensor_zoom_FF; /// 1111 1100 - }else - { - rdata >>= D_sensor_zoom; - } - - // L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); - t16 = rdata; - // L0_uart0_ushex(t16); L0_uart0_uc(0x09); - ///L0_uart0_0d0a(); - return t16; -} - -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; - -} - -//中值滤波任务 -#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].out1[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_S32_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(); - - -} - -//均值滤波任务 -#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].out1[i]; - } - L2_task_go(D_task_ADC_CHx_FILTER_AVG_COUNT); - } - - TTSS_Task_step(D_task_ADC_CHx_FILTER_AVG_COUNT) - s->avgval = Lc_vS32_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_ShiftFilter(TS_TASK_ADC_SHIFTFILTER *s) -{ - TTSS_Task_init() - s->average = ts_adc_samples[s->ch].out2;/// - s->sum = s->average << s->shift; - L2_task_go(D_task_ADC_CHx_FILTER_SHIFT_GET); - - TTSS_Task_step(D_task_ADC_CHx_FILTER_SHIFT_GET) - s->sum += - - - 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 0 - L0_uart0_ulhex(s->rough_weight); - L0_uart0_uc(' '); - #endif - 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(); -} - - - - /******* - 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; - - //通道中值滤波任务初始化 - 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; - - //通道均值滤波任务初始化 - 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_blur_threshold_2_1(R.p.adc_blur_threshold[0]); //2KG - ts_adc_blur_out[ch].threshold[1] = D_blur_threshold_2_1(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].oldout = 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 #endif diff --git a/source/bsp/TTSSbsp/bsp_config.h b/source/bsp/TTSSbsp/bsp_config.h index dd5edc2..54eccf1 100644 --- a/source/bsp/TTSSbsp/bsp_config.h +++ b/source/bsp/TTSSbsp/bsp_config.h @@ -164,25 +164,23 @@ #define D_CODE_ENCRYPTION_TYPE TYPE_ENCRYPTION_ENABLE //是否代码加密 //串口配置 -/// #define D_UART1_BRT BRT_460800 -/// #define D_UART1_BRT BRT_921600 -// #define D_UART1_BRT BRT_115200 #define D_UART1_BRT BRT_9600 #define D_UART1_SBIT SBIT_1 #define D_PIN_UART1 PIN_UART1_Rxd_30_Txd_31 -#define D_UART2_BRT BRT_115200///BRT_921600///BRT_115200/// -#define D_UART3_BRT BRT_115200///BRT_921600///BRT_115200 -#define D_UART4_BRT BRT_115200///BRT_921600///BRT_115200 + +#define D_UART2_BRT BRT_9600///BRT_921600///BRT_115200/// +#define D_UART2_SBIT SBIT_1 +#define D_PIN_UART2 PIN_UART2_Rxd_10_Txd_11 //485配置 -#define D_UART1_485_TYPE TYPE_485_SLAVER //UART1启用485 -#define D_UART1_485_SLAVER_ID_BROADCAST 0xFF //485从机总是响应0xFF消息 -#define D_UART1_485_SLAVER_ID 0x11 //板卡作为485从机 slaverId -#define D_UART1_485_TX() D_P55_stdIO();D_P55_ON(); -#define D_UART1_485_RX() D_P55_stdIO();D_P55_OFF(); +// #define D_UART1_485_TYPE TYPE_485_SLAVER //UART1启用485 +// #define D_UART1_485_SLAVER_ID_BROADCAST 0xFF //485从机总是响应0xFF消息 +// #define D_UART1_485_SLAVER_ID 0x11 //板卡作为485从机 slaverId +// #define D_UART1_485_TX() D_P55_stdIO();D_P55_ON(); +// #define D_UART1_485_RX() D_P55_stdIO();D_P55_OFF(); + +#define D_UART1_485_TYPE TYPE_485_NONE //UART1不启用485 #define D_UART2_485_TYPE TYPE_485_NONE //UART2不启用485 -#define D_UART3_485_TYPE TYPE_485_NONE //UART2不启用485 -#define D_UART4_485_TYPE TYPE_485_NONE //UART2不启用485 //MODBUS协议配置 #define D_MODBUS_ENABLE //MODBS启用开关,如果不使用modbus,可以注释掉本行 @@ -192,9 +190,9 @@ //外设定义 #define D_LED1_INIT() D_LED1_OFF() -#define D_LED1_ON() D_P17_stdIO();D_P17_OFF() -#define D_LED1_OFF() D_P17_stdIO();D_P17_ON() -#define D_LED1_REV() D_P17_stdIO();D_P17_REV() +#define D_LED1_ON() D_P12_stdIO();D_P12_OFF() +#define D_LED1_OFF() D_P12_stdIO();D_P12_ON() +#define D_LED1_REV() D_P12_stdIO();D_P12_REV() #define D_LED2_INIT() D_LED2_OFF() #define D_LED2_ON() D_P54_stdIO();D_P54_OFF() diff --git a/source/bsp/backu/bsp_cs1232.h b/source/bsp/backu/bsp_cs1232.h index f526548..7129f55 100644 --- a/source/bsp/backu/bsp_cs1232.h +++ b/source/bsp/backu/bsp_cs1232.h @@ -103,16 +103,16 @@ P3.0 RXD0 11 -#define D_ADC_SCLK2_INIT() D_stdIO_P1(BITN6);D_ADC_SCLK2_OFF(); -#define D_ADC_SCLK2_CLOSE() D_HighR_P1(BITN6); -#define D_ADC_SCLK2_ON() D_P16_ON();D_adc_delay2(); -#define D_ADC_SCLK2_OFF() D_P16_OFF();D_adc_delay(); +#define D_ADC_SCLK2_INIT() D_stdIO_P3(BITN2);D_ADC_SCLK2_OFF(); +#define D_ADC_SCLK2_CLOSE() D_HighR_P3(BITN2); +#define D_ADC_SCLK2_ON() D_P32_ON();D_adc_delay2(); +#define D_ADC_SCLK2_OFF() D_P32_OFF();D_adc_delay(); -#define D_ADC_DOUT2_INIT() D_HighR_P1(BITN0); -#define D_ADC_DOUT2_CLOSE() D_HighR_P1(BITN0); -#define D_ADC_DOUT2_ON() D_P10_ON() -#define D_ADC_DOUT2_OFF() D_P10_OFF() -#define D_ADC_DOUT2_AT() D_P10_AT() +#define D_ADC_DOUT2_INIT() D_HighR_P3(BITN3); +#define D_ADC_DOUT2_CLOSE() D_HighR_P3(BITN3); +#define D_ADC_DOUT2_ON() D_P33_ON() +#define D_ADC_DOUT2_OFF() D_P33_OFF() +#define D_ADC_DOUT2_AT() D_P33_AT() #define D_ADC_SCLK3_INIT() D_stdIO_P3(BITN4);D_ADC_SCLK3_OFF(); @@ -120,33 +120,33 @@ P3.0 RXD0 11 #define D_ADC_SCLK3_ON() D_P34_ON();D_adc_delay2(); #define D_ADC_SCLK3_OFF() D_P34_OFF();D_adc_delay(); -#define D_ADC_DOUT3_INIT() D_HighR_P3(BITN7); -#define D_ADC_DOUT3_CLOSE() D_HighR_P3(BITN7); -#define D_ADC_DOUT3_ON() D_P37_ON() -#define D_ADC_DOUT3_OFF() D_P37_OFF() -#define D_ADC_DOUT3_AT() D_P37_AT() - -#define D_ADC_SCLK4_INIT() D_stdIO_P3(BITN2);D_ADC_SCLK4_OFF(); -#define D_ADC_SCLK4_CLOSE() D_HighR_P3(BITN2); -#define D_ADC_SCLK4_ON() D_P32_ON();D_adc_delay2(); -#define D_ADC_SCLK4_OFF() D_P32_OFF();D_adc_delay(); - -#define D_ADC_DOUT4_INIT() D_HighR_P3(BITN3); -#define D_ADC_DOUT4_CLOSE() D_HighR_P3(BITN3); -#define D_ADC_DOUT4_ON() D_P33_ON() -#define D_ADC_DOUT4_OFF() D_P33_OFF() -#define D_ADC_DOUT4_AT() D_P33_AT() - -#define D_ADC_GAIN0_INIT() D_stdIO_P1(BITN2) -#define D_ADC_GAIN0_CLOSE() D_HighR_P1(BITN2) -#define D_ADC_GAIN0_128() D_P12_ON() -#define D_ADC_GAIN0_64() D_P12_OFF() - - -#define D_ADC_PDWN_INIT() D_stdIO_P1(BITN1) -#define D_ADC_PDWN_CLOSE() D_HighR_P1(BITN1) -#define D_ADC_PD_WACKUP() D_P11_ON() //唤醒时间至少5.6ms -#define D_ADC_POWERDOWN() D_P11_OFF() ///持续26us以上 +#define D_ADC_DOUT3_INIT() D_HighR_P3(BITN5); +#define D_ADC_DOUT3_CLOSE() D_HighR_P3(BITN5); +#define D_ADC_DOUT3_ON() D_P35_ON() +#define D_ADC_DOUT3_OFF() D_P35_OFF() +#define D_ADC_DOUT3_AT() D_P35_AT() + +#define D_ADC_SCLK4_INIT() D_stdIO_P3(BITN6);D_ADC_SCLK4_OFF(); +#define D_ADC_SCLK4_CLOSE() D_HighR_P3(BITN6); +#define D_ADC_SCLK4_ON() D_P36_ON();D_adc_delay2(); +#define D_ADC_SCLK4_OFF() D_P36_OFF();D_adc_delay(); + +#define D_ADC_DOUT4_INIT() D_HighR_P3(BITN7); +#define D_ADC_DOUT4_CLOSE() D_HighR_P3(BITN7); +#define D_ADC_DOUT4_ON() D_P37_ON() +#define D_ADC_DOUT4_OFF() D_P37_OFF() +#define D_ADC_DOUT4_AT() D_P37_AT() + +#define D_ADC_GAIN0_INIT() D_stdIO_P5(BITN5) +#define D_ADC_GAIN0_CLOSE() D_HighR_P5(BITN5) +#define D_ADC_GAIN0_128() D_P55_ON() +#define D_ADC_GAIN0_64() D_P55_OFF() + + +#define D_ADC_PDWN_INIT() D_stdIO_P5(BITN4) +#define D_ADC_PDWN_CLOSE() D_HighR_P5(BITN4) +#define D_ADC_PD_WACKUP() D_P54_ON() //唤醒时间至少5.6ms +#define D_ADC_POWERDOWN() D_P54_OFF() ///持续26us以上 #define D_ADS1213_GAIN_64 64 diff --git a/source/bsp/bsp_cs1232.h b/source/bsp/bsp_cs1232.h index 7402029..d4e0761 100644 --- a/source/bsp/bsp_cs1232.h +++ b/source/bsp/bsp_cs1232.h @@ -89,30 +89,30 @@ P3.0 RXD0 11 *****************/ -#define D_ADC_SCLK1_INIT() D_stdIO_P3(BITN5);D_ADC_SCLK1_OFF(); -#define D_ADC_SCLK1_CLOSE() D_HighR_P3(BITN5); -#define D_ADC_SCLK1_ON() D_P35_ON();D_adc_delay2(); -#define D_ADC_SCLK1_OFF() D_P35_OFF();D_adc_delay(); +#define D_ADC_SCLK1_INIT() D_stdIO_P1(BITN7);D_ADC_SCLK1_OFF(); +#define D_ADC_SCLK1_CLOSE() D_HighR_P1(BITN7); +#define D_ADC_SCLK1_ON() D_P17_ON();D_adc_delay2(); +#define D_ADC_SCLK1_OFF() D_P17_OFF();D_adc_delay(); //#define D_ADC_DOUT1_INIT() D_stdIO_P3(BITN6); -#define D_ADC_DOUT1_INIT() D_HighR_P3(BITN6); -#define D_ADC_DOUT1_CLOSE() D_HighR_P3(BITN6); -//#define D_ADC_DOUT1_ON() D_P36_ON() -//#define D_ADC_DOUT1_OFF() D_P36_OFF() -#define D_ADC_DOUT1_AT() D_P36_AT() +#define D_ADC_DOUT1_INIT() D_HighR_P1(BITN6); +#define D_ADC_DOUT1_CLOSE() D_HighR_P1(BITN6); +//#define D_ADC_DOUT1_ON() D_P16_ON() +//#define D_ADC_DOUT1_OFF() D_P16_OFF() +#define D_ADC_DOUT1_AT() D_P16_AT() -#define D_ADC_SCLK2_INIT() D_stdIO_P1(BITN6);D_ADC_SCLK2_OFF(); -#define D_ADC_SCLK2_CLOSE() D_HighR_P1(BITN6); -#define D_ADC_SCLK2_ON() D_P16_ON();D_adc_delay2(); -#define D_ADC_SCLK2_OFF() D_P16_OFF();D_adc_delay(); +#define D_ADC_SCLK2_INIT() D_stdIO_P3(BITN2);D_ADC_SCLK2_OFF(); +#define D_ADC_SCLK2_CLOSE() D_HighR_P3(BITN2); +#define D_ADC_SCLK2_ON() D_P32_ON();D_adc_delay2(); +#define D_ADC_SCLK2_OFF() D_P32_OFF();D_adc_delay(); -#define D_ADC_DOUT2_INIT() D_HighR_P1(BITN0); -#define D_ADC_DOUT2_CLOSE() D_HighR_P1(BITN0); -#define D_ADC_DOUT2_ON() D_P10_ON() -#define D_ADC_DOUT2_OFF() D_P10_OFF() -#define D_ADC_DOUT2_AT() D_P10_AT() +#define D_ADC_DOUT2_INIT() D_HighR_P3(BITN3); +#define D_ADC_DOUT2_CLOSE() D_HighR_P3(BITN3); +#define D_ADC_DOUT2_ON() D_P33_ON() +#define D_ADC_DOUT2_OFF() D_P33_OFF() +#define D_ADC_DOUT2_AT() D_P33_AT() #define D_ADC_SCLK3_INIT() D_stdIO_P3(BITN4);D_ADC_SCLK3_OFF(); @@ -120,33 +120,33 @@ P3.0 RXD0 11 #define D_ADC_SCLK3_ON() D_P34_ON();D_adc_delay2(); #define D_ADC_SCLK3_OFF() D_P34_OFF();D_adc_delay(); -#define D_ADC_DOUT3_INIT() D_HighR_P3(BITN7); -#define D_ADC_DOUT3_CLOSE() D_HighR_P3(BITN7); -#define D_ADC_DOUT3_ON() D_P37_ON() -#define D_ADC_DOUT3_OFF() D_P37_OFF() -#define D_ADC_DOUT3_AT() D_P37_AT() - -#define D_ADC_SCLK4_INIT() D_stdIO_P3(BITN2);D_ADC_SCLK4_OFF(); -#define D_ADC_SCLK4_CLOSE() D_HighR_P3(BITN2); -#define D_ADC_SCLK4_ON() D_P32_ON();D_adc_delay2(); -#define D_ADC_SCLK4_OFF() D_P32_OFF();D_adc_delay(); - -#define D_ADC_DOUT4_INIT() D_HighR_P3(BITN3); -#define D_ADC_DOUT4_CLOSE() D_HighR_P3(BITN3); -#define D_ADC_DOUT4_ON() D_P33_ON() -#define D_ADC_DOUT4_OFF() D_P33_OFF() -#define D_ADC_DOUT4_AT() D_P33_AT() - -#define D_ADC_GAIN0_INIT() D_stdIO_P1(BITN2) -#define D_ADC_GAIN0_CLOSE() D_HighR_P1(BITN2) -#define D_ADC_GAIN0_128() D_P12_ON() -#define D_ADC_GAIN0_64() D_P12_OFF() - - -#define D_ADC_PDWN_INIT() D_stdIO_P1(BITN1) -#define D_ADC_PDWN_CLOSE() D_HighR_P1(BITN1) -#define D_ADC_PD_WACKUP() D_P11_ON() //唤醒时间至少5.6ms -#define D_ADC_POWERDOWN() D_P11_OFF() ///持续26us以上 +#define D_ADC_DOUT3_INIT() D_HighR_P3(BITN5); +#define D_ADC_DOUT3_CLOSE() D_HighR_P3(BITN5); +#define D_ADC_DOUT3_ON() D_P35_ON() +#define D_ADC_DOUT3_OFF() D_P35_OFF() +#define D_ADC_DOUT3_AT() D_P35_AT() + +#define D_ADC_SCLK4_INIT() D_stdIO_P3(BITN6);D_ADC_SCLK4_OFF(); +#define D_ADC_SCLK4_CLOSE() D_HighR_P3(BITN6); +#define D_ADC_SCLK4_ON() D_P36_ON();D_adc_delay2(); +#define D_ADC_SCLK4_OFF() D_P36_OFF();D_adc_delay(); + +#define D_ADC_DOUT4_INIT() D_HighR_P3(BITN7); +#define D_ADC_DOUT4_CLOSE() D_HighR_P3(BITN7); +#define D_ADC_DOUT4_ON() D_P37_ON() +#define D_ADC_DOUT4_OFF() D_P37_OFF() +#define D_ADC_DOUT4_AT() D_P37_AT() + +#define D_ADC_GAIN0_INIT() D_stdIO_P5(BITN5) +#define D_ADC_GAIN0_CLOSE() D_HighR_P5(BITN5) +#define D_ADC_GAIN0_128() D_P55_ON() +#define D_ADC_GAIN0_64() D_P55_OFF() + + +#define D_ADC_PDWN_INIT() D_stdIO_P5(BITN4) +#define D_ADC_PDWN_CLOSE() D_HighR_P5(BITN4) +#define D_ADC_PD_WACKUP() D_P54_ON() //唤醒时间至少5.6ms +#define D_ADC_POWERDOWN() D_P54_OFF() ///持续26us以上 #define D_ADS1213_GAIN_64 64 diff --git a/source/msp/uart/msp_UART2.c b/source/msp/uart/msp_UART2.c index ded4a97..1ffa508 100644 --- a/source/msp/uart/msp_UART2.c +++ b/source/msp/uart/msp_UART2.c @@ -74,19 +74,28 @@ msp/uartx.c 底层代码 和cpu相关 缓存发送也放在里面 #if(MainFre_5M == D_sys_MainFre) #elif(MainFre_22M == D_sys_MainFre) #if(BRT_115200 == D_UART2_BRT) - void L0_uart2_init(void) /// void UartInit(void) //115200bps@22.1184MHz + void L0_uart2_init(void) //115200bps@22.1184MHz { - S2CON = 0x50; //8位数据,可变波特率 - AUXR &= 0xFB; //定时器时钟12T模式 - T2L = 0xFC; //设置定时初始值 - T2H = 0xFF; //设置定时初始值 - AUXR |= 0x10; //定时器2开始计时 + S2CON = 0x50; //8位数据,可变波特率 + AUXR &= 0xFB; //定时器时钟12T模式 + T2L = 0xFC; //设置定时初始值 + T2H = 0xFF; //设置定时初始值 + AUXR |= 0x10; //定时器2开始计时 } #elif(BRT_460800 == D_UART2_BRT) #elif(BRT_921600 == D_UART2_BRT) #elif(BRT_19200 == D_UART2_BRT) + #elif(BRT_9600== D_UART2_BRT) + void L0_uart2_init(void) //9600bps@22.1184MHz + { + S2CON = 0x50; //8位数据,可变波特率 + AUXR &= 0xFB; //定时器时钟12T模式 + T2L = 0xD0; //设置定时初始值 + T2H = 0xFF; //设置定时初始值 + AUXR |= 0x10; //定时器2开始计时 + } #else///9600 #endif//D_sys_MainFre) @@ -145,8 +154,12 @@ void L0_uart2_buf_init(void) D_s2b_road2_init(); + D_stdIO_P1(BITN1); + D_stdIO_P1(BITN0); + L0_uart2_init(); -L0_uart2_IntRIClear(); L0_uart2_IntTIClear(); + L0_uart2_IntRIClear(); + L0_uart2_IntTIClear(); D_UART2_ES_INT(1); //打开串口中断 #if (D_UART2_485_TYPE != TYPE_485_NONE) diff --git a/source/msp/uart/msp_UART2.h b/source/msp/uart/msp_UART2.h index 4c2bac1..553c93d 100644 --- a/source/msp/uart/msp_UART2.h +++ b/source/msp/uart/msp_UART2.h @@ -68,14 +68,14 @@ msp/uartx.c 底层代码 和cpu相关 缓存发送也放在里面 #define L0_uart2_set(x) (S2BUF = x) //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - +// extern void L0_uart2_init(void); extern void L0_uart2_buf_init(void); /////extern void L1_uart2_sendArray(U8 * buf, U16 len); #define L0_uart2_uc(X) L0_uartN_uc(D_UART2,X) #define L0_uart2_us(X) L0_uartN_us(D_UART2,X) #define L0_uart2_ul(X) L0_uartN_ul(D_UART2,X) -#define L0_uart2_0d0a() L0_uartN_0d0a(0) +#define L0_uart2_0d0a() L0_uartN_0d0a(1) #define L0_uart2_uchex(X) L0_uartN_uchex(D_UART2,X) #define L0_uart2_ushex(X) L0_uartN_ushex(D_UART2,X) #define L0_uart2_ulhex(X) L0_uartN_ulhex(D_UART2,X) diff --git a/source/msp/uart/msp_uart1.h b/source/msp/uart/msp_uart1.h index c1f6679..0f8ede3 100644 --- a/source/msp/uart/msp_uart1.h +++ b/source/msp/uart/msp_uart1.h @@ -59,7 +59,6 @@ msp/uartx.c 底层代码 和cpu相关 缓存发送也放在里面 //#include "../tpc/tpc_x.h" #define D_UART1_RS_EN(x) REN = (x) - #define D_uart1_ES_INT(x) ES = (x) #define L0_uart1_IntRI() (RI)//BITN_G(SCON,U0RI) #define L0_uart1_IntTI() (TI)//BITN_G(SCON,U0TI) diff --git a/source/msp/uart/msp_uartN.c b/source/msp/uart/msp_uartN.c index 3233ed5..9c72faa 100644 --- a/source/msp/uart/msp_uartN.c +++ b/source/msp/uart/msp_uartN.c @@ -149,7 +149,7 @@ void L0_uartN_485(U8 uartx,U8 x) switch(uartx) { case 0: - D_UART1_485_RX(); + // D_UART1_485_RX(); break; case 1: break; @@ -165,7 +165,7 @@ void L0_uartN_485(U8 uartx,U8 x) switch(uartx) { case 0: - D_UART1_485_TX(); + // D_UART1_485_TX(); break; case 1: break; @@ -186,7 +186,7 @@ void L0_uartN_Array(U8 uartx,void *buf,U16 len) L0_waitFree_uartN(uartx); - L0_uartN_485(uartx,D_485S); + //L0_uartN_485(uartx,D_485S); ts_Usend[uartx].ok = D_ready; ts_Usend[uartx].over = 0; ts_Usend[uartx].now = 1; diff --git a/source/tpc/tpc_x.h b/source/tpc/tpc_x.h index f97af20..dfb3a9c 100644 --- a/source/tpc/tpc_x.h +++ b/source/tpc/tpc_x.h @@ -43,6 +43,12 @@ typedef struct #define TS_RS485_BUF_MAX_LEN 16 + +// AA 02 10 00 02 A3 B4 33 查询 +// AA 02 20 00 03 00 00 00 6C 校准第0个点 00kg +// AA 02 20 00 03 01 00 64 6C 校准第1个点 20kg +// AA 02 20 00 03 02 02 BC 6C 校准第2个点 40kg +// AA 02 30 00 00 33 清零 typedef struct {//8byte vU8 filter;