|
void RST_AD9852(void) { //Init_Freq.lFreq = (uint64_t)0x000000EC8EC2; //相关引脚上升到高电平 IO0SET = DDS_SHAP_BIT;//0.25 IO0SET = DDS_WR_BIT; //0.28 IO0SET = DDS_RD_BIT; //0.29 IO0SET = DDS_FSK_BIT; //0.30 IO1CLR = DDS_UD_BIT; //1.25 IO0CLR = DDS_RST_BIT; //0.12 //硬复位 IO0CLR = DDS_RST_BIT; IO0SET = DDS_RST_BIT; TimeDly(1000); IO0CLR = DDS_RST_BIT; //写寄存器 SetMode(SIN_Cfg); //写初始化频率 SetFreq(F1_ADD,1000); }
//********************************************************************************// //写AD9852的频率控制器 void SetFreq(INT8U Add,INT32U Freq) { INT8U i; TW_FREQ TW_Freq; TW_Freq.lFreq = (((uint64_t)Freq<TimeDly(1000); for(i=0;i<6;i++) { DDS_ADD(Add+i); DDS_DATA(TW_Freq.cFreq[5-i]); WR(); } UDCLK(); }
//********************************************************************************// //设置AD9852工作模式 void SetMode(INT8U *pCfg) { INT8U i; //转到外不触发模式 DDS_ADD(0x1f); DDS_DATA(0x00); WR(); TimeDly(10); //写寄存器 for(i=0;i<4;i++) { DDS_ADD(CFG_ADD+i); DDS_DATA(*pCfg++); WR(); } UDCLK(); } |
|