📄 tlv2544.c
字号:
#include "common.h"
void write_2548_cfr(unsigned int com_code)//写配置字
{
unsigned char i;
ADC_CS=1;
ADC_SDI=1;
ADC_SCLK=0;
ADC_CS=0;
_nop_();
_nop_();
for(i=0;i<16;i++)
{
if(com_code&0x8000) { ADC_SDI=1;}
else { ADC_SDI=0;}
ADC_SCLK=0;
ADC_SCLK=1;
com_code<<=1;
}
ADC_CS=1;
}
void init_2548(void)//初始
{
ADC_SDI=1;
ADC_SDO=1;
ADC_CS=1;
ADC_SCLK=0;
ADC_CSTART=1;
_nop_();
write_2548_cfr(0xa000);
_nop_();
write_2548_cfr(0xac00);
_nop_();
}
unsigned int read_2548_cfr(void)//读配置
{
unsigned char i,cfg_code=0x90;
unsigned int u;
u=0;
ADC_SDI=1;
ADC_SCLK=0;
ADC_CS=0;
_nop_();
_nop_();
for(i=0;i<4;i++)
{
if(cfg_code&0x80) {ADC_SDI=1;}
else {ADC_SDI=0;}
ADC_SCLK=0;
ADC_SCLK=1;
cfg_code<<=1;
}
for(i=4;i<16;i++)
{
ADC_SCLK=0;
ADC_SCLK=1;
_nop_();
_nop_();
if(ADC_SDO==1) u=u|0x01;
u<<=0x01;
}
u>>=1;
ADC_CS=1;
return(u);
}
//读ADC值
//入口参数next_channel是下一个通道
//next_channel:0,2,4,6对应1到4通道
unsigned int ReadAD(unsigned char next_channel)
{
unsigned int AD_value;
unsigned char i;
AD_value=0;
ADC_SDI=1;
ADC_SCLK=0;
ADC_CS=0;
_nop_();
for(i=0;i<12;i++)
{
if(i<4)
{
if(next_channel&0x8) {ADC_SDI=1;}
else {ADC_SDI=0;}
next_channel<<=1;
}
ADC_SCLK=0;
ADC_SCLK=1;
if(ADC_SDO) AD_value|=0x01;
AD_value<<=1;
}
for(i=0;i<4;i++)
{
ADC_SCLK=0;
ADC_SCLK=1;
}
AD_value>>=1;
ADC_CS=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
// while(ADC_INT);
return AD_value;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -