ud23
Advanced Member level 3
hi i am using atmega 16 and ad9833 to generate sine wave in range of 1hz to 1Mhz. i hav some example code for it i try to see them but i didn't get any sine wave output from ad9833.
I made fuction for tuning word can any one suggest where am i wrong.
void output(unsigned long freq_value)
{
unsigned long dds;
unsigned int dds_l,dds_h;
dds= freq_value *268435456/ FMCLK;
dds=dds<<2;
dds_l=dds;
dds_h=dds>>16;
dds_l=dds_l>>2;
dds_l=dds_l & 0x7FFF;
dds_l=dds_l | 0x4000;
dds_h=dds_h & 0x7FFF;
dds_h=dds_h | 0x4000;
Write_word(0x2000);
Write_word(dds_l);
Write_word(dds_h);
}
where FMCLK=25Mhz
pleas help me if any correction in it.
I made fuction for tuning word can any one suggest where am i wrong.
void output(unsigned long freq_value)
{
unsigned long dds;
unsigned int dds_l,dds_h;
dds= freq_value *268435456/ FMCLK;
dds=dds<<2;
dds_l=dds;
dds_h=dds>>16;
dds_l=dds_l>>2;
dds_l=dds_l & 0x7FFF;
dds_l=dds_l | 0x4000;
dds_h=dds_h & 0x7FFF;
dds_h=dds_h | 0x4000;
Write_word(0x2000);
Write_word(dds_l);
Write_word(dds_h);
}
where FMCLK=25Mhz
pleas help me if any correction in it.