DAC7554 输出问题
时间:10-02
整理:3721RD
点击:
输出通道:0、1、2 更新一次,就输出了
输出通道:3 更新两次次,才能输出
一直查不出原因
void DAC7554_SetDA(u16 Channel,u16 Voltage)
{
u8 i;
u16 sdata;
sdata = (0x8000 | ((Channel<<12) & 0x3000) | (Voltage & 0x0FFF));
DA_CLK(ON);
DA_DIN(OFF);
Delay(30);
DA_EN(ON); //选通DA
Delay(100);
for(i=0;i<16;i++)
{
DA_CLK(ON);
Delay(30);
if(sdata&0x8000){DA_DIN(OFF); Delay(30);}
else {DA_DIN(ON); Delay(30);}
DA_CLK(OFF);
Delay(30);
sdata<<=1;
}
Delay(100);
DA_EN(OFF); //取消选通AD
DA_DIN(OFF);
Delay(1000);
}
最后一个通道, 会不会是通信时序中的最后一位问题引起的. 往往程序的最后一位容易出现波形不全或缺少, 延时没有了. 被循环结束后的其他信号屏蔽了等等情况. 纯属个人经验, 可以检查一下看看