You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
369 lines
12 KiB
369 lines
12 KiB
C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 1
|
|
|
|
|
|
C51 COMPILER V9.54, COMPILATION OF MODULE BSP_CS1232
|
|
OBJECT MODULE PLACED IN ..\out\bsp_cs1232.obj
|
|
COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\bsp\bsp_cs1232.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOIN
|
|
-TPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\
|
|
-source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT
|
|
-(..\out\bsp_cs1232.lst) TABS(2) OBJECT(..\out\bsp_cs1232.obj)
|
|
|
|
line level source
|
|
|
|
1 ////////////////////////////////////////////////////////////////////////////
|
|
2 ///@copyright Copyright (c) 2020, 传控科技 All rights reserved.
|
|
3 ///-------------------------------------------------------------------------
|
|
4 /// @file cs1232.h
|
|
5 /// @brief hard cs1232 include
|
|
6 /// @info FILE FOR HARDWARE cs1232
|
|
7 ///-------------------------------------------------------------------------
|
|
8
|
|
9
|
|
10 //////////////////////////////////////////////////////////////////////////////
|
|
11 /// @version 1.0
|
|
12 /// @author CC
|
|
13 /// @date 20200530
|
|
14 /// @note
|
|
15 //////////////////////////////////////////////////////////////////////////////
|
|
16
|
|
17 #include "bsp_cs1232.h"
|
|
*** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M"
|
|
18 ///TS_cs1232_ ts_adc;///TSS_FLOW_ tss_ads;
|
|
19
|
|
20 void L0_ADS1213_mode(vtype mode)
|
|
21 {
|
|
22 1 switch(mode)
|
|
23 1 {
|
|
24 2 case D_ADS1213_POWERDOWN:
|
|
25 2 D_ADC_SCLK1_CLOSE();
|
|
26 2 D_ADC_DOUT1_CLOSE();
|
|
27 2 D_ADC_SCLK2_CLOSE();
|
|
28 2 D_ADC_DOUT2_CLOSE();
|
|
29 2 D_ADC_SCLK3_CLOSE();
|
|
30 2 D_ADC_DOUT3_CLOSE();
|
|
31 2 D_ADC_SCLK4_CLOSE();
|
|
32 2 D_ADC_DOUT4_CLOSE();
|
|
33 2 D_ADC_POWERDOWN();
|
|
34 2 // L0_uart0_uc('d');
|
|
35 2 break;
|
|
36 2 case D_ADS1213_GAIN_128:
|
|
37 2 D_ADC_GAIN0_128();
|
|
38 2 /// L0_uart0_uc('8');
|
|
39 2 break;
|
|
40 2 case D_ADS1213_GAIN_64:
|
|
41 2 D_ADC_GAIN0_64();
|
|
42 2 // L0_uart0_uc('6');
|
|
43 2 break;
|
|
44 2 default:
|
|
45 2 D_ADC_GAIN0_64();
|
|
46 2 // L0_uart0_uc('q');
|
|
47 2 break;
|
|
48 2 };
|
|
49 1 }
|
|
50
|
|
51 void L0_ADS1213_INIT(vtype mode)
|
|
C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 2
|
|
|
|
52 {
|
|
53 1 D_ADC_GAIN0_INIT();
|
|
54 1 D_ADC_SCLK1_INIT();
|
|
55 1 D_ADC_DOUT1_INIT();
|
|
56 1 D_ADC_SCLK2_INIT();
|
|
57 1 D_ADC_DOUT2_INIT();
|
|
58 1 D_ADC_SCLK3_INIT();
|
|
59 1 D_ADC_DOUT3_INIT();
|
|
60 1 D_ADC_SCLK4_INIT();
|
|
61 1 D_ADC_DOUT4_INIT();
|
|
62 1 D_ADC_PDWN_INIT();
|
|
63 1 D_ADC_PD_WACKUP();
|
|
64 1 L0_ADS1213_mode(mode);
|
|
65 1 }
|
|
66
|
|
67
|
|
68
|
|
69 void L0_adc_SCLK(vtype ch,vtype onf)
|
|
70 {
|
|
71 1 switch (ch)
|
|
72 1 {
|
|
73 2 case D_ADCCH_1:
|
|
74 2 if(onf){D_ADC_SCLK1_ON();}else{D_ADC_SCLK1_OFF();}
|
|
75 2 break;
|
|
76 2 case D_ADCCH_2:
|
|
77 2 if(onf){D_ADC_SCLK2_ON();}else{D_ADC_SCLK2_OFF();}
|
|
78 2 break;
|
|
79 2 case D_ADCCH_3:
|
|
80 2 if(onf){D_ADC_SCLK3_ON();}else{D_ADC_SCLK3_OFF();}
|
|
81 2 break;
|
|
82 2 case D_ADCCH_4:
|
|
83 2 if(onf){D_ADC_SCLK4_ON();}else{D_ADC_SCLK4_OFF();}
|
|
84 2 break;
|
|
85 2 default:
|
|
86 2 break;
|
|
87 2 }
|
|
88 1 }
|
|
89
|
|
90 vtype L0_adc_DOUT_AT(vtype ch)
|
|
91 {
|
|
92 1 vtype r = 9;
|
|
93 1
|
|
94 1 switch (ch)
|
|
95 1 {
|
|
96 2 case D_ADCCH_1:
|
|
97 2 r = D_ADC_DOUT1_AT();
|
|
98 2 break;
|
|
99 2 case D_ADCCH_2:
|
|
100 2 r = D_ADC_DOUT2_AT();
|
|
101 2 break;
|
|
102 2 case D_ADCCH_3:
|
|
103 2 r = D_ADC_DOUT3_AT();
|
|
104 2 break;
|
|
105 2 case D_ADCCH_4:
|
|
106 2 r = D_ADC_DOUT4_AT();
|
|
107 2 break;
|
|
108 2 default:
|
|
109 2 break;
|
|
110 2 }
|
|
111 1 return r;
|
|
112 1 }
|
|
113
|
|
C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 3
|
|
|
|
114
|
|
115
|
|
116 void L0_ADS1231_readCH2(vtype ch,vU32 *d)
|
|
117 {
|
|
118 1 u8 i = 0;
|
|
119 1 vU32 rdata;
|
|
120 1 /// vU16 t16;
|
|
121 1 rdata = 0;
|
|
122 1
|
|
123 1 for(i = 0; i < 24; i++)
|
|
124 1 {
|
|
125 2 L0_adc_SCLK(ch,1);/// D_ADC_SCLK1_ON();
|
|
126 2 rdata <<= 1;
|
|
127 2 L0_adc_SCLK(ch,0);///D_ADC_SCLK1_OFF();
|
|
128 2 if(L0_adc_DOUT_AT(ch))
|
|
129 2 {
|
|
130 3 rdata += 1;
|
|
131 3 }
|
|
132 2 }
|
|
133 1 ///25 puls make DOUT high
|
|
134 1 L0_adc_SCLK(ch,1);
|
|
135 1 ///FF84 CC09 FF84 CC09
|
|
136 1 L0_adc_SCLK(ch,0);
|
|
137 1 *d = rdata;
|
|
138 1 }
|
|
139
|
|
140
|
|
141
|
|
142 #if 0
|
|
|
|
|
|
void L0_ADS1231_readCH2555(vtype ch,vU16 *d)
|
|
{
|
|
u8 i = 0;
|
|
vU32 rdata;
|
|
vU16 t16;
|
|
rdata = 0;
|
|
|
|
for(i = 0; i < 24; i++)
|
|
{
|
|
L0_adc_SCLK(ch,1);/// D_ADC_SCLK1_ON();
|
|
rdata <<= 1;
|
|
L0_adc_SCLK(ch,0);///D_ADC_SCLK1_OFF();
|
|
if(L0_adc_DOUT_AT(ch))
|
|
{
|
|
rdata += 1;
|
|
}
|
|
}
|
|
///25 puls make DOUT high
|
|
L0_adc_SCLK(ch,1);
|
|
///FF84 CC09 FF84 CC09
|
|
|
|
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;
|
|
}
|
|
C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 4
|
|
|
|
|
|
// L0_uart0_ulhex(rdata); L0_uart0_uc(0x09);
|
|
t16 = rdata;
|
|
// L0_uart0_ushex(t16); L0_uart0_uc(0x09);
|
|
///L0_uart0_0d0a();
|
|
|
|
|
|
if(t16 & 0x8000) //最高位为1,<0则
|
|
{
|
|
t16 = 0xffFF - t16;///转变为正数
|
|
///*d = D_ADC_OFFSET - t16;
|
|
*d = D_ADC_OFFSET - t16;
|
|
}else
|
|
{
|
|
*d = t16 + D_ADC_OFFSET;
|
|
}
|
|
// L0_uart0_ushex(*d); L0_uart0_0d0a();
|
|
|
|
|
|
L0_adc_SCLK(ch,0);
|
|
}
|
|
#endif
|
|
198
|
|
199 /*********************************end file*********************************************/
|
|
200
|
|
201
|
|
202 //#define D_ADC_GATHER_Way1 1
|
|
203 #if 0
|
|
|
|
|
|
//调试阻塞读
|
|
vS32 L0_ADS1231_read(U8 ch)
|
|
{
|
|
vU32 e = 0;u8 i;vS32 rdata = 0;
|
|
while(1 == L0_2dc_DOUT_AT(ch))
|
|
{
|
|
if(e ++ > 100000)
|
|
{
|
|
//return 0;
|
|
}
|
|
}
|
|
for(i = 0; i < 24; i++)
|
|
{
|
|
L0_2dc_SCLK(ch,1);
|
|
rdata <<= 1;
|
|
L0_2dc_SCLK(ch,0);
|
|
if(L0_2dc_DOUT_AT(ch))
|
|
{
|
|
rdata += 1;
|
|
}
|
|
}
|
|
L0_2dc_SCLK(ch,1);
|
|
if(rdata & 0x800000) //???λ?1??<0??
|
|
{
|
|
rdata |= 0xFF000000;
|
|
}
|
|
return rdata;
|
|
}
|
|
|
|
|
|
void L1_ADS1213_main(void)
|
|
{
|
|
C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 5
|
|
|
|
U8 ch = D_ADCCH_2;
|
|
while(1)
|
|
{
|
|
while(1 == L0_2dc_DOUT_AT(ch))
|
|
;
|
|
tss_ads.u32_i = L0_ADS1231_readCH(ch);
|
|
tss_ads.u16_v = (vU16)( tss_ads.u32_i >> 16);
|
|
L0_uart0_ushex(tss_ads.u16_v);
|
|
tss_ads.u16_v = (vU16)(tss_ads.u32_i & 0x0000ffff);
|
|
L0_uart0_ushex(tss_ads.u16_v);//Lc_delay_us(500);
|
|
L0_uart0_uc(0x0d); L0_uart0_uc(0x0a);
|
|
}
|
|
}
|
|
|
|
u8 Read_byte_adcIC(void)
|
|
{
|
|
u8 i;
|
|
u8 rdata = 0; //初始化返回值为 0
|
|
for(i = 0; i < 8; i++)
|
|
{
|
|
D_ADC_SCLK1_ON();
|
|
rdata <<= 1; //返回值左移 1 位
|
|
/// CS1231_Clk(); //上升沿接收数据,下降沿更新数据
|
|
|
|
D_ADC_SCLK1_OFF();
|
|
|
|
|
|
if(D_ADC_DOUT1_AT())
|
|
{
|
|
rdata += 1; //若数据线上数据为 1,则返回值加 1
|
|
}
|
|
}
|
|
return(rdata);
|
|
}
|
|
|
|
void L0_ADS1213_CH(u8 ch)
|
|
{
|
|
/// /// SPEED = 1 57--57 ms 硬件配置成高电平
|
|
D_ADC_PDWN_OFF();
|
|
switch(ch)
|
|
{
|
|
case D_ADCCH_T:
|
|
L0_ADS1213_T(1);
|
|
break;
|
|
case D_ADCCH_1:
|
|
D_ADC_CS_A0_OFF();
|
|
break;
|
|
case D_ADCCH_2:
|
|
D_ADC_CS_A0_ON();
|
|
break;
|
|
case D_ADCCH_3:
|
|
//D_ADC_CS2_A0_OFF();
|
|
break;
|
|
case D_ADCCH_4:
|
|
//D_ADC_CS2_A0_ON();
|
|
break;
|
|
default:///
|
|
L0_ADS1213_T(0);
|
|
break;
|
|
};
|
|
Lc_delay_us(50);
|
|
D_ADC_PDWN_ON();
|
|
C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 6
|
|
|
|
}
|
|
|
|
//channel-温度
|
|
void L0_ADS1213_T(u8 onff)
|
|
{
|
|
if(onff)
|
|
{
|
|
D_ADC_PDWN_OFF();
|
|
D_ADC_TEMP_ON();
|
|
Lc_delay_us(50);
|
|
D_ADC_PDWN_ON();
|
|
}
|
|
else
|
|
{
|
|
D_ADC_PDWN_OFF();
|
|
D_ADC_TEMP_OFF();
|
|
Lc_delay_us(50);
|
|
D_ADC_PDWN_ON();
|
|
}
|
|
}
|
|
|
|
#endif
|
|
322
|
|
323
|
|
324
|
|
325 /*********************************************/
|
|
326
|
|
327
|
|
328
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|
CODE SIZE = 626 ----
|
|
CONSTANT SIZE = ---- ----
|
|
XDATA SIZE = 15 ----
|
|
PDATA SIZE = ---- ----
|
|
DATA SIZE = ---- ----
|
|
IDATA SIZE = ---- ----
|
|
BIT SIZE = ---- ----
|
|
EDATA SIZE = ---- ----
|
|
HDATA SIZE = ---- ----
|
|
XDATA CONST SIZE = ---- ----
|
|
FAR CONST SIZE = ---- ----
|
|
END OF MODULE INFORMATION.
|
|
|
|
|
|
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
|
|
|