ad5452.c

来自「AD公司的串行ADC的驱动源码」· C语言 代码 · 共 33 行

C
33
字号
/************************************************************************************************
ATMEGA128 8M晶振
************************************************************************************************/
#include<avr/io.h>
#define DA_PORT PORTE
#define DA_DDR  DDRE
#define   DA_SDIN_H    DA_PORT|=_BV(PE2)
#define   DA_SDIN_L    DA_PORT&=~_BV(PE2)
#define   DA_SYNC_H    DA_PORT|=_BV(PE3)
#define   DA_SYNC_L    DA_PORT&=~_BV(PE3)
#define   DA_SCLK_H    DA_PORT|=_BV(PE4)
#define   DA_SCLK_L    DA_PORT&=~_BV(PE4)
#define   uint   unsigned int
void DA_DATA_IN(uint DA_DATA)
{   unsigned char i;
    DA_DATA=DADATA<<6;//输入的数据是八位的,而DA5452是十二位的
    DA_DATA&=~( BV(15)|BV(14) );//让控制位C0,C1置零,数据在下降沿有效
	DA_SYNC_L;
    for(i=0;i<16;i++)
	{  
	   DA_SCLK_H;
       if(DA_DATA&0X8000)
	     DA_SDIN_H;
	   else
	     DA_SDIN_L;
	   DA_SCLK_L;
	   DA_DATA=DA_DATA<<1;
	}
	DA_SYNC_H;
}
void DA_INT()
{  DA_DDR|=_BV(PE2)|_BV(PE3)|_BV(PE4);//把PE2,PE3,PE4设置为输出
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?