AD9833产生三角波初始化
0赞
发表于 7/21/2012 3:11:59 PM
阅读(2471)
//初始化
void AD9833_Init(void)
{
Write_16bit_All_Two(0x21,0x00); //RESET=1,
//初始化为标准三相电源
Write_16bit_All_Two(0x00,0x00); //RESET=0,
}
//初始化为频率为50,相位移为0
void AD9833_50HZ_0Ps_Init(void)
{
Write_28bit_One_FR(1, 0, 0x6a,0x40,0x40,0x13 );
Write_28bit_One_FR(1, 1, 0xaa,0x40,0x80,0x13);
Write_12bit_One_PR(1, 0, 0, 0,0);
Write_12bit_One_PR(1, 1, 0, 0,0);
}
void Write_12bit_One_PR(bit If_to_all, bit Phase_0_or_1, UNCHAR Char_1,UNCHAR
Char_2,UNCHAR AD9833_CS)
{
UNINT word_12;
if (Phase_0_or_1 == 1)
word_12= Char_1 |0xE0;
else
word_12= Char_1 |0xC0;
if (If_to_all == 1)
{
Write_16bit_All_Two(word_12,Char_2);
}
else
{
Write_16bit_One(word_12,Char_2,Which_AD9833_CS);
}
}
void Write_14bit_One_FR( bit Msbs_or_Lsbs, bit If_to_All,UNCHAR
FREQ0_or_1,UNCHAR Char_1,UNCHAR Char_2,UNCHAR Which_AD9833_CS)
{
UNCHAR word_14_h,control_word_h,control_word_l;
if (FREQ0_or_1 == 1)
{
word_14_h= Char_1 |0x80;
}
else
{
word_14_h= Char_2 |0x40;
}
if(Msbs_or_Lsbs == 1)
{
control_word_h= 0x10 ;
control_word_l = 0x00;
}
else
{
control_word_h= 0x00 ;
control_word_l = 0x00;
}
if (If_to_All == 1)
{
Write_16bit_All_Two(0x20,0x00);
Write_16bit_All_Two(word_14_h,Char_2);
}
else
{
Write_16bit_One(0x20,0x00, Which_AD9833_CS);
Write_16bit_One(word_14_h,Char_2, Which_AD9833_CS);
}
