uint16 ReadADC_TLC2543(uchar ain) { uchar temp; uint16 adc_value = 0; ain <<= 4; CS_2543 = 0; for(temp = 0;temp < 12;temp ++) { adc_value <<= 1; ain <<= 1; ADDR_2543 = CY; if(DOUT_2543) adc_value += 1; SCLK_2543 = 1; delayus(1); SCLK_2543 = 0; } CS_2543 = 1; return adc_value; }
时间: 2024-02-14 17:07:02 浏览: 64
code uint8-t *p-flash 与uint8-t code *p-flash的区别
这是一个读取TLC2543模数转换器的函数。函数参数为ain,表示要读取的通道号。函数返回值为uint16类型的ADC值。函数的实现过程如下:
1.将通道号左移4位,使得ain的高4位为控制字。
2.将片选信号CS_2543置为0,开始转换。
3.循环12次,每次将adc_value左移1位,ain左移1位,将CY信号输出到ADDR_2543口,读取DOUT_2543信号,如果DOUT_2543为1,则将adc_value的最低位设为1。
4.将时钟信号SCLK_2543置为1,延时1us,再将时钟信号SCLK_2543置为0,完成一次数据读取。
5.将片选信号CS_2543置为1,结束转换。
6.返回ADC值adc_value。
该函数的作用是读取TLC2543模数转换器的模拟信号并进行数字化处理,将结果返回给调用者。
阅读全文