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.
227 lines
4.0 KiB
227 lines
4.0 KiB
4 years ago
|
////////////////////////////////////////////////////////////////////////////
|
||
|
///@copyright Copyright (c) 2020, 传控科技 All rights reserved.
|
||
|
///-------------------------------------------------------------------------
|
||
|
/// @file cs1232.h
|
||
|
/// @brief hard cs1232 include
|
||
|
/// @info FILE FOR HARDWARE cs1232
|
||
|
///-------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
/// @version 1.0
|
||
|
/// @author CC
|
||
|
/// @date 20200530
|
||
|
/// @note
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
4 years ago
|
#include "cs1232.h"
|
||
4 years ago
|
TSS_FLOW_ tss_ads;
|
||
|
|
||
|
//#define D_ADC_GATHER_Way1 1
|
||
4 years ago
|
#if 0
|
||
4 years ago
|
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();
|
||
|
}
|
||
|
|
||
|
//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();
|
||
|
}
|
||
|
}
|
||
|
|
||
4 years ago
|
#endif
|
||
|
void L0_ADS1213_INIT(void)
|
||
|
{
|
||
|
D_ADS1213_INIT();
|
||
|
D_stdIO_P3(BITN2);
|
||
|
D_stdIO_P3(BITN3);
|
||
|
|
||
|
//L0_ADS1213_CH(D_ADCCH_1); //4个独立芯片,不需要切换
|
||
|
Lc_delay_ms(100);///57ms 建立时间
|
||
|
|
||
|
//L0_ADS1213_CH(D_ADCCH_3);
|
||
|
//Lc_delay_ms(100);///57ms 建立时间
|
||
|
}
|
||
|
|
||
|
|
||
4 years ago
|
void L0_2dc_SCLK(vtype ch,vtype onf)
|
||
|
{
|
||
|
switch (ch)
|
||
|
{
|
||
|
case D_ADCCH_1:
|
||
|
if(onf){D_ADC_SCLK1_ON();}else{D_ADC_SCLK1_OFF();}
|
||
|
break;
|
||
|
case D_ADCCH_2:
|
||
|
if(onf){D_ADC_SCLK2_ON();}else{D_ADC_SCLK2_OFF();}
|
||
|
break;
|
||
|
case D_ADCCH_3:
|
||
|
if(onf){D_ADC_SCLK3_ON();}else{D_ADC_SCLK3_OFF();}
|
||
|
break;
|
||
|
case D_ADCCH_4:
|
||
|
if(onf){D_ADC_SCLK4_ON();}else{D_ADC_SCLK4_OFF();}
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
vtype L0_2dc_DOUT_AT(vtype ch)
|
||
|
{
|
||
|
vtype r = 9;
|
||
|
|
||
|
switch (ch)
|
||
|
{
|
||
|
case D_ADCCH_1:
|
||
|
r = D_ADC_DOUT1_AT();
|
||
|
break;
|
||
|
case D_ADCCH_2:
|
||
|
r = D_ADC_DOUT2_AT();
|
||
|
break;
|
||
|
case D_ADCCH_3:
|
||
|
r = D_ADC_DOUT3_AT();
|
||
|
break;
|
||
|
case D_ADCCH_4:
|
||
|
r = D_ADC_DOUT4_AT();
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
return r;
|
||
|
}
|
||
|
|
||
4 years ago
|
//任务读
|
||
4 years ago
|
vS32 L0_ADS1231_readCH(vtype ch)
|
||
|
{
|
||
4 years ago
|
vtype i; vU32 rdata = 0;
|
||
4 years ago
|
for(i = 0; i < 24; i++)
|
||
|
{
|
||
|
L0_2dc_SCLK(ch,1);/// D_ADC_SCLK1_ON();
|
||
|
rdata <<= 1;
|
||
|
L0_2dc_SCLK(ch,0);///D_ADC_SCLK1_OFF();
|
||
|
if(L0_2dc_DOUT_AT(ch))
|
||
|
{
|
||
|
rdata += 1;
|
||
|
}
|
||
|
}
|
||
|
///25 puls make DOUT high
|
||
|
L0_2dc_SCLK(ch,1);
|
||
|
if(rdata & 0x800000) //最高位为1,<0则
|
||
|
{
|
||
|
rdata |= 0xFF000000;
|
||
|
}
|
||
|
L0_2dc_SCLK(ch,0);
|
||
|
|
||
|
return rdata;
|
||
|
}
|
||
|
|
||
4 years ago
|
//调试阻塞读
|
||
4 years ago
|
vS32 L0_ADS1231_read(U8 ch)
|
||
|
{
|
||
|
vU32 e = 0;u8 i;vS32 rdata = 0;
|
||
|
while(1 == L0_2dc_DOUT_AT(ch))
|
||
|
{
|
||
|
if(e ++ > 100000)
|
||
|
{
|
||
4 years ago
|
//return 0;
|
||
4 years ago
|
}
|
||
|
}
|
||
|
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;
|
||
|
}
|
||
|
}
|
||
4 years ago
|
L0_2dc_SCLK(ch,1);
|
||
4 years ago
|
if(rdata & 0x800000) //???λ?1??<0??
|
||
|
{
|
||
|
rdata |= 0xFF000000;
|
||
|
}
|
||
|
return rdata;
|
||
|
}
|
||
|
|
||
|
|
||
|
void L1_ADS1213_main(void)
|
||
|
{
|
||
4 years ago
|
U8 ch = D_ADCCH_2;
|
||
4 years ago
|
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);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/*********************************end file*********************************************/
|
||
|
|
||
|
|
||
|
|