📄 ad2543.h
字号:
/****************************************************************************/
//功能: AD2543与Atmega128硬件接口
//输入: 无
//输出: 无
//备注:
/****************************************************************************/
#define CS_SET (PORTA|=(1<<0))
#define CS_CLR (PORTA&=~(1<<0))
#define DIN_SET (PORTA|=(1<<1))
#define DIN_CLR (PORTA&=~(1<<1))
#define SCLK_SET (PORTA|=(1<<2))
#define SCLK_CLR (PORTA&=~(1<<2))
#define DOUT (PINA&(1<<3))
#define EOC (PINA&(1<<4))
#define uchar unsigned char
#define uint unsigned int
/****************************************************************************/
//功能: AD2543各功能模块函数
//输入: 无
//输出:
//备注:
/****************************************************************************/
//void init_ad2543(void);
void write_ad2543(uint command);
uint read_ad2543(void);
void init_ad2543(void)
{
write_ad2543(0xA700);
}
/*D7-D4为:通道0-10的选择,11-13为test voltage的选择,14为power down
D3-D2为output data length(01为8位,11为16位,其它为12位;
D1位output data format:1为高位在前,0为低位在前
D0为:1为bipolar,0为unipolar;*/
void write_ad2543(uint command)
{
uint token=0x8000,cmd;
uchar i;
cmd=command;
CS_SET;
CS_CLR;
SCLK_CLR;
delay_nus(2);
for(i=0;i<16;i++)
{
if(cmd&token)
DIN_SET;
else
DIN_CLR;
SCLK_SET;
delay_1us();
SCLK_CLR;
token=token>>1;
}
delay_nus(2);
}
uint read_ad2543(void)
{
uint ad16bit=0x0000;
uchar i;
while(EOC){;}
for(i=0;i<16;i++)
{
if(DOUT) ad16bit|=0x01;
SCLK_SET;
delay_1us();
SCLK_CLR;
ad16bit=ad16bit<<1;
}
return(ad16bit);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -