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;