关于AD9834的控制程序
我编写了一个控制AD9834产生,程序如下:#include <avr/io.h>
#include <avr/delay.h>
#include <stdio.h>
void send_con(unsigned int con)
{unsigned char i;
asm("cbi 0x0B,2");
for (i=0;i<16;i++)
{if(con&0x8000)
asm("sbi 0x0B,0");
else
asm("cbi 0x0B,0");
con<<=1;
asm("sbi 0x0B,1");
asm("cbi 0x0B,1");
}
asm("sbi 0x0B,2");
}
void send_fre(unsigned int fre)
{send_con(fre);
}
void send_phase(void)
{send_con(0xC000);
}
void main()
{unsigned long fr=0x3333333;
unsigned int LSB,MSB;
PORTD=0x0000;
DDRD=0xFFFF;
asm ("cbi 0x0B,1");
asm ("sbi 0x0B,2");
LSB=fr/0x4000+0x4000;
MSB=fr%0x4000+0x4000;
send_con(0x2100);
send_fre(LSB);
send_fre(MSB);
send_phase;
}
但是总没有波形产生,请各位高手指点一下。 附AD9834pdf
点击此处下载 ourdev_371573.pdf(文件大小:233K) (原文件名:AD9834.pdf) send_con(0x2100);
应该不是这句吧~
应该是Send_Con(0x2038);吧~ http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3578471&bbs_page_no=1&search_mode=1&search_text=AD9834&bbs_id=9999
这里面有个AD9834的代码,貌似好用的,看看有什么区别吧。 请问一下大家:
AD9834为什麽要有两个频率寄存器(FREQ0和FREQ1)以及两个相位寄存器(PHASE0和PHASE1)?
因为IC只有一个输出,如果两个频率寄存器和两个相位寄存器都写了值,
那请问输出频率和相位会由哪一个寄存器来决定,还请高手解答。
页:
[1]