⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlv2544.c

📁 本程序是一个人机接口程序
💻 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 + -