本帖最后由 liang_ke 于 2014-4-4 14:04 编辑
airwill 发表于 2014-4-4 12:23 
这段代码原理没有错误.
不过初值有问题.
第一次, i=24的时候,
谢谢指出错误,我改了一下,
void DACx876_Write(u32 dat)
{
s8 i;
LOCK_0;
for(i=23;i>=0;i--)//写24位数据帧,8位地址 + 16位数据
{
SCK_0;
if((dat & (1<<i)) != 0)
{
DIN_1;
}
else
{
DIN_0;
}
Delay(1);
SCK_1;//SCLK上升沿锁存DIN数据
Delay(1);
}
SCK_1;
LOCK_1;
DIN_1;
}
|