AD9833写入28字节程序
0赞
void Write_28bit_One_FR(bit If_to_all, UNCHAR FREQ0_or_1, UNCHAR
low_14_h,UNCHAR low_14_l,UNCHAR high_14_h,UNCHAR high_14_l)
{
if (If_to_all==1) //写动作
{ Write_16bit_All_Two(0x20,0x00);
Write_16bit_All_Two(low_14_h,low_14_l);
Write_16bit_All_Two(high_14_h,high_14_l);
}
else
{ Write_16bit_One(0x20,0x00, FREQ0_or_1);
Write_16bit_One(low_14_h,low_14_l, FREQ0_or_1);
Write_16bit_One(high_14_h,high_14_l, FREQ0_or_1);
}
}
void Write_16bit_All_Two(UNCHAR Char_1,UNCHAR Char_2)
{
UNCHAR t,i;
i = 8;
AD9833_SCLK = 1;
P1 = 0xff; //片选
P1 = 0x03;
for(i=0;i<8;i++)
{// _nop_();
if((Char_1<<i) &0x80)//确定SDATA上的数据
{
AD9833_SDATA = 1;
}
else
{
AD9833_SDATA = 0;
}
AD9833_SCLK = 0;
for(t=0;t<20;t++);
AD9833_SCLK = ~AD9833_SCLK;//在下降沿写?AD9833_Delay();
//_nop_(); AD9833_Delay();
for(t=0;t<10;t++);
}
for(i=0;i<8;i++)
{
if((Char_2<<i) &0x80)//确定SDATA上的数据
{
AD9833_SDATA = 1;
}
else
{
AD9833_SDATA = 0;
}
AD9833_SCLK = 0;
for(t=0;t<20;t++);
AD9833_SCLK = ~AD9833_SCLK;//在下降沿写?AD9833_Delay();
//_nop_(); AD9833_Delay();
for(t=0;t<10;t++);
}
P1 = 0xff; //片选拉高
Delay_N_MCLK(8);
}
