完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
3个回答
|
|
没用过,帮顶
|
|
|
|
/*****************************************************
This program was produced by the CodeWizardAVR V2.04.4a Advanced Automatic rogram Generator ?Copyright 1998-2009 avel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project: Version: Date : 2013/8/3 Author: NeVaDa Company: Microsoft Comments: Chip type : ATmega8L Program type : Application AVR Core Clock frequency: 1.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include #include "delay.h" #define uchar unsigned char #define ulong unsigned long #define uint unsigned int // Declare your global variables here #define SCLK ORTB.1 #define SDATA ORTB.0 #define SEN ORTB.2 //Address Define #define Addr_MainConfiguartion 0x0 #define Addr_PhaseDetectorGain 0x1 #define Addr_PowerDown 0x2 #define Addr_RF1_N_Divider 0x3 #define Addr_RF2_N_Divider 0x4 #define Addr_IF_N_Divider 0x5 #define Addr_RF1_R_Divider 0x6 #define Addr_RF2_R_Divider 0x7 #define Addr_IF_R_Divider 0x8 void Si4133_SendData(ulong dat,uchar addr); void led(); uchar flag=0; void main(void) { DDRC=0x0f;  ORTC=0x00; DDRB=0x07;  ORTB=0x00; Si4133_SendData(0x0000180c,0x00);//register 0: Auxiliary Output set low, //VCO frequency/4,1 = KPs,registers all bits set 1 //Si4133_SendData(0x00000020,0x01); //register 1:IF hase Detector Gain Constant. //KPI:4096–8191 Si4133_SendData(0x00000002,0x02);//register 2:IF synthesizer on. Si4133_SendData(0x000019C8,0x05);//register 5:N-Divider for IF Synthesizer:6600 Si4133_SendData(0X00000528,0x08);//register 8:R-Divider for IF Synthesizer:1320 /////锁定频率:fin/R=fout/N;当fin=12.8M,R=1320,N=6600,fout=64M; while (1) { ///PORTC=0x00; // delay_ms(200); // ORTC=0x02; // delay_ms(200); // lace your code here }; } /************************************************************* *函数名称:Si4133_SendData *函数功能:向Si4133发送数据 *参 数:dat ,数据 * addr,地址 *返 回:无 *************************************************************/ void Si4133_SendData(unsigned long dat,uchar addr) { ulong sedata; uint i; sedata = ((dat << 4) | (addr & 0x0f)); // 数据 + 地址 sedata <<= 10; // 左移10位 17位数据+4位addr SEN = 1; SCLK = 0; SDATA = 0; SEN = 0; for(i = 0;i < 22;i++) { SDATA = ((sedata & 0x80000000)?1:0); // 输出数据 SCLK = 1; // 上升沿数据锁存 SCLK = 0; sedata <<= 1; } SEN = 1; flag=1; led(); } void led() { if(flag) { PORTC=0x00; delay_ms(200); PORTC=0x02; delay_ms(200); flag=0; } } 示波器测得输出频率在20M左右,但是有时候却是50hz的噪声,这是什么原因? 是由于si4133 不能连续改变频率吗?示波器测得的信号是产生之前的。。求教啊·· |
|
|
|
你弄这么多笑脸干嘛
|
|
|
|
只有小组成员才能发言,加入小组>>
903 浏览 2 评论
12827 浏览 0 评论
4124 浏览 7 评论
2337 浏览 9 评论
2162 浏览 2 评论
456浏览 2评论
784浏览 2评论
904浏览 2评论
395浏览 1评论
623浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 19:00 , Processed in 0.942410 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号