完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include "intrins.h" ***it FSYNC=P1^2; ***it SDATA=P1^4; ***it SCLK=P1^3; void ad9832input(unsigned int data1) { unsigned int temp; SCLK=0; _nop_(); FSYNC=0; _nop_(); SCLK=1; for(temp=0x8000;temp>0;temp>>=1,SCLK=1) { SDATA=data1&temp; _nop_(); SCLK=0; } SCLK=1; FSYNC=1; } void sendpp(unsigned char *s) { FSYNC=1; //使用位选择器选择芯片寄存器 ad9832input(0xb000); //输入频率由低位到高位. ad9832input(0x3000+s[0]); ad9832input(0x2100+s[1]); ad9832input(0x3200+s[2]); ad9832input(0x2300+s[3]); //输入相位由低位到高位 ad9832input(0x1800+s[4]); ad9832input(0x0900+s[5]); //选择频率0寄存器和相位0寄存器 ad9832input(0x6000); //结束输入开始输出. ad9832input(0xc000); } void selectfre(float *value_Freq,float *value_Phase) { unsigned long Freq; unsigned int Phase; unsigned char a[6]; Freq=*value_Freq*0x00b3; Phase=*value_Phase*0x000b; a[0]=Freq&0x000000ff; a[1]=(Freq>>8)&0x000000ff; a[2]=(Freq>>16)&0x000000ff; a[3]=(Freq>24)&0x000000ff; a[4]=Phase&0x00ff; a[5]=(Phase>>8)&0x00ff; a[5]=a[5]&0x0f; sendpp(a); } void ad9832init() { //初始化ad9832. ad9832input(0xf800); //输入频率由低位到高位. ad9832input(0x3050); ad9832input(0x21b7); ad9832input(0x3202); ad9832input(0x2300); //输入相位由低位到高位 ad9832input(0x1800); ad9832input(0x0900); //使用位选择器选择芯片寄存器 ad9832input(0xb000); //选择频率0寄存器和相位0寄存器 ad9832input(0x6000); //结束输入开始输出. ad9832input(0xc000); } |
|
相关推荐
4 个讨论
|
|
|
|
|
|
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 19:22 , Processed in 0.701032 second(s), Total 50, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号