D/A芯片的一段输入程序,求解释。
void DA(uint da)
{
unsigned char i;
da<<=6; 为什么?
sclk=0; //时钟低
cs=0; //片选有效
for (i=0;i<12;i++)
{
if((da&0x8000)==0){din=0;} 什么意思?
else din=1;
sck=1; //时钟高
da=da<<1; //左移一位
sck=0; //时钟低
}
cs=1;
clk=0;
}
是基于D/A芯片 TLC5615 的 一段输入程序。输入有效的数据位是10位。
◆ 10位DAC电路;
◆ 一个16位移位寄存器,接受串行移入的二进制数,
◆ 并行输入输出的10位DAC寄存器,为10位DAC电路提供待转换的二进制数据;
[解决办法]
我表示这个要去看你的硬件的那个说明。
[解决办法]
uint da应该是16bit,da<<6, 低10bit有效
da & 0x8000,按位与 1000 0000 0000 0000
就是取bit15
da=da<<1 其实就相当于 (da & 0100 0000 0000 0000) ? 1 : 0
是这样吧
[解决办法]
与硬茧相关的程序需要看原理图和manual!
din 是什么东西?