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.

370 lines
12 KiB

C51 COMPILER V9.54 BSP_CS1232 09/06/2024 11:24:46 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 11:24:46 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 11:24:46 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 11:24:46 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 11:24:46 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 11:24:46 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)