da2534.c

来自「AD 转换2534 access程序 atmega avr ic c 程序」· C语言 代码 · 共 55 行

C
55
字号
//-----------------------------------------
word TLC2543_Access(byte write_to_2543)
//AD cnd write and read the result of last conversion
//Input	:	write_to_2543	--	command write to AD.
//Output:	read_from_2543	--	AD conversion result
//                              of last time
{
	unsigned int read_from_2543=0;
		
	SPCR=0x50;
		
	io_ad_cs=1;
	io_ad_cs=0;
	
	read_from_2543 =  SPI_MasterTransmit(write_to_2543);
	read_from_2543 <<= 8;
	read_from_2543 |=SPI_MasterTransmit(0);
	//last clock down to EOC need typical 1.5us max 2.2us
	#asm("nop\nop\nop\nop\nop")		
	#asm("nop\nop\nop\nop\nop")
	#asm("nop\nop\nop\nop\nop")
	#asm("nop\nop\nop\nop\nop")
	io_ad_cs=1;
	return(read_from_2543);
}
//-----------------------------------------


//-----------------------------------------
byte SPI_MasterTransmit(byte bData)
//CPU master SPI access
//Input	:	bData 	--	SPI write data
//Output:	SPI read result
{
 SPDR = bData;
 while(!(SPSR & 0x80));
 return SPDR;
}
//-----------------------------------------

//-----------------------------------------
word ADReadV(void)
// Read Pin-V, AD channel 9
// 读取精度为1mV,有效精度为2.5mV,范围0~10V
{
	word i,j;
	TLC2543_Access(ad_cnt_channel9);
	while(io_ad_eoc==LOW);	//Conversion typical time 10us LOW
	i=TLC2543_Access(ad_cnt_channel9);
	i=i>>3;
	j=i>>2;
	i=i+j;
	return(i);
}
//-----------------------------------------

⌨️ 快捷键说明

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