<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【MSPM0G3519 系列】AD9959 DDS模塊(凌智)移植

      引言

      看了清單,感覺(jué)儀表的頻率會(huì)高一些啊,專(zhuān)門(mén)在m0上移植了AD9959程序,可能用來(lái)較高頻的掃頻。
      AD9959在正常的頻率范圍內(nèi)(100kHz - 150MHz以內(nèi)),有最高840mVpp輸出。
      AD9959擁有四個(gè)通道,每一個(gè)通道的頻率、相位和幅值獨(dú)立且可調(diào)。
      AD9959頻率范圍:40kHz - 200MHz;幅值范圍:0mVpp - 840mVpp;相位范圍:0° - 180°。

      移植

      引腳

      由于用不上高頻調(diào)制和自動(dòng)掃頻,所以就沒(méi)用上P0~P3這四個(gè)引腳,其他引腳是都接上了的。(哦對(duì)了記得加一個(gè)散熱片)
      image

      配置

      這里就直接給代碼,方便看,注意引腳拉高還是拉低。

      image

      文件

      image

      程序

      AD9959.c

      點(diǎn)擊查看代碼
      #include "AD9959.h"
      
      #if USE_AD9959
      
      #define system_clk 500000000	 //AD9959工作頻率設(shè)定為500MHz
      
      #define uchar unsigned char
      #define uint unsigned int
      
      
      //----------------------------------------------------------------------------------------------//
      // 板邊緣引腳:																									CubeMX引腳命名(移植嚴(yán)格遵守):
      // PDN —— PA7  —— 推挽輸出:輸出低 - LOW  - 超高速 —————————————— AD9959_PWR
      // SD3 —— PC5  —— 推挽輸出:輸出低 - LOW  - 超高速 —————————————— AD9959_SDIO3
      // SD1 —— PH14 —— 推挽輸出:輸出低 - LOW  - 超高速 —————————————— AD9959_SDIO1
      // SCK —— PI2  —— 推挽輸出:輸出高 - HIGH - 超高速 控制位 ——————— AD9959_SCLK
      // IU  —— PI0  —— 推挽輸出:輸出高 - HIGH - 超高速 控制位 ——————— AD9959_IO_updata
      // P2  —— PI4  —— 推挽輸出:輸出低 - LOW  - 超高速 —————————————— AD9959_PS2
      // P0  —— PI6  —— 推挽輸出:輸出低 - LOW  - 超高速 —————————————— AD9959_PS0
      // 板靠?jī)?nèi)引腳:	
      // RST —— PC4  —— 推挽輸出:輸出高 - HIGH - 超高速 復(fù)位位 ——————— AD9959_Reset
      // SD2 —— PH13 —— 推挽輸出:輸出低 - LOW  - 超高速 —————————————— AD9959_SDIO2
      // SD0 —— PH15 —— 推挽輸出:輸出高 - HIGH - 超高速 數(shù)據(jù)傳輸位 ——— AD9959_SDIO0
      // CS  —— PI1  —— 推挽輸出:輸出高 - HIGH - 超高速 控制位 ——————— AD9959_CS
      // NC  —— No Connect	
      // P3  —— PI5  —— 推挽輸出:輸出低 - LOW - 超高速  —————————————— AD9959_PS3
      // P1  —— PI7  —— 推挽輸出:輸出低 - LOW - 超高速  —————————————— AD9959_PS1
      //----------------------------------------------------------------------------------------------//
      
      
      //子程序-----------------------------------------------------------
      
      //-----------------------------------------------------------------
      // void Delay(__IO uint32_t nCount)
      //-----------------------------------------------------------------
      // 
      // 函數(shù)功能: 粗略延時(shí)
      // 入口參數(shù): 延時(shí)長(zhǎng)度 
      // 返回參數(shù): 無(wú)
      // 注意事項(xiàng): 
      //   -__IO 就是volatile, 加上這個(gè)后可以避免延遲函數(shù)被編譯器優(yōu)化掉
      //				一個(gè)系統(tǒng)時(shí)鐘:1/72MHZ=13.89ns,經(jīng)過(guò)23個(gè)周期:319ns
      /*
        	j=1000,i=513,測(cè)得以下延時(shí): (SYSCLK=72MHz)
      										時(shí)鐘個(gè)數(shù)					延時(shí)				 誤差		實(shí)際
      			Delay(1):		    22						305ns								639ns
      			Delay(2):		    29					  402ns								736ns
      			Delay(5):		    50						694ns								1.028us
      			Delay(10):	  	85				 1.1805us								1.514us
      			Delay(20):	   155	 			 2.1527us								2.486us
      			Delay(40):	   295				 4.0972us								4.4305us
      			Delay(100):	   715				 9.9305us								10.26us
      */
      //-----------------------------------------------------------------
      void Delay(__IO uint32_t nCount)
      {
        for(; nCount != 0; nCount--);// 23個(gè)
      }
      
      void AD9959_Init(void)  //初始化
      {
      	CS_1;
      	SCLK_0;
      	IO_update_0;
      	// PS0_0;
      	// PS1_0;
      	// PS2_0;
      	// PS3_0;
      	
      	SDIO0_0;
      	SDIO1_0;
      	SDIO2_0;
      	SDIO3_0;
      	
       	Reset_0;
       	Delay(6);
       	Reset_1;
       	Delay(100);
       	Reset_0;
      }
      
      //設(shè)置頻率轉(zhuǎn)換字
      void WrFrequencyTuningWorddata(double f,uchar *ChannelFrequencyTuningWorddata)
      {
      	unsigned char z;
      	
      	long int y;
      	double x;					
      	x=4294967296.0/system_clk;	//頻率控制字計(jì)算
      	f=f*x;                      
      	y=(long int)f;				//強(qiáng)制轉(zhuǎn)換類(lèi)型
      	
      	z=(uchar)(y>>24);     //8位長(zhǎng)整型數(shù)據(jù)強(qiáng)制轉(zhuǎn)為8位字符型
      	ChannelFrequencyTuningWorddata[0]=z;
      	
      	z=(uchar)(y>>16);
      	ChannelFrequencyTuningWorddata[1]=z;
      	
      	z=(uchar)(y>>8);
      	ChannelFrequencyTuningWorddata[2]=z;
      	
      	z=(uchar)(y>>0);
      	ChannelFrequencyTuningWorddata[3]=z;
      	
      }
      
      // 數(shù)據(jù)更新,通道使能位不需要IO更新
      void IO_update(void)   
      {
      	IO_update_0;
      	Delay(12);
      	IO_update_1;
      	Delay(24);
      	IO_update_0;
      }
      
      
      //通信
      void WriteToAD9959ViaSpi(uchar RegisterAddress, uchar NumberofRegisters, uchar *RegisterData,uchar temp) 
      {
      	uchar	ControlValue = 0;
      	uchar		ValueToWrite = 0;
      	uchar	RegisterIndex = 0;
      	uchar	i = 0;
      
      	//是ControlValue為一個(gè)8位數(shù)據(jù)
      	ControlValue = RegisterAddress;
      
      	SCLK_0;
      	CS_0;	 //bring CS low
      	
      	//寫(xiě)控制字
      	for(i=0; i<8; i++)
      	{
      		SCLK_0;
      		if(0x80 == (ControlValue & 0x80))
      		{
      			SDIO0_1;	  //Send one to SDIO0pin
      		}
      		else
      		{
      			SDIO0_0;	  //Send zero to SDIO0pin
      		}
      		SCLK_1;
      		ControlValue <<= 1;	//Rotate data
      	}
      	SCLK_0;
      	
      	//寫(xiě)數(shù)據(jù)
      	for (RegisterIndex=0; RegisterIndex<NumberofRegisters; RegisterIndex++)
      	{
      		ValueToWrite = RegisterData[RegisterIndex];
      		for (i=0; i<8; i++)
      		{
      			SCLK_0;
      			if(0x80 == (ValueToWrite & 0x80))
      			{
      				SDIO0_1;	  //Send one to SDIO0pin
      			}
      			else
      			{
      				SDIO0_0;	  //Send zero to SDIO0pin
      			}
      			SCLK_1;
      			ValueToWrite <<= 1;	//Rotate data
      		}
      		SCLK_0;		
      	}	
      	if(temp==1)
      	  {
      	  IO_update();
      	  }	
        CS_1;	//bring CS high again
      }
      
      //設(shè)置相位轉(zhuǎn)換字
      void WrPhaseOffsetTuningWorddata(double f,uchar *ChannelPhaseOffsetTuningWorddata)
      {
      	unsigned char z;
      	
      	long int y;
      	double x;					
      	x=16384.0/360;	//相位控制字計(jì)算
      	f=f*x;                      
      	y=(long int)f;				//強(qiáng)制轉(zhuǎn)換類(lèi)型
      	
      	z=(uchar)(y>>8);     //8位長(zhǎng)整型數(shù)據(jù)強(qiáng)制轉(zhuǎn)為8位字符型
      	ChannelPhaseOffsetTuningWorddata[0]=z;
      	
      	z=(uchar)(y>>0);
      	ChannelPhaseOffsetTuningWorddata[1]=z;
      	
      // 	ChannelPhaseOffsetTuningWorddata[2]=0x00;//下次修改時(shí)加上這兩句然后在修改數(shù)組的變化,掃相時(shí)出現(xiàn)不能掃360的情況可能與計(jì)算時(shí)數(shù)組分配
      // 	ChannelPhaseOffsetTuningWorddata[3]=0x00;//錯(cuò)誤導(dǎo)致的
      	
      }
      
      void WrAmplitudeTuningWorddata(double f,uchar *ChannelAmplitudeTuningWorddata) // 幅度掃描時(shí)設(shè)置上升和下降的幅度
      																																								//計(jì)算過(guò)程注意與計(jì)算頻率區(qū)別
      {
      	unsigned char z;
      	
      	unsigned long int y;
      	double x;					
      	x=1024.0/1024;	//幅度控制字計(jì)算
      	f=f*x;                      
      	y=(unsigned long int)f;				//強(qiáng)制轉(zhuǎn)換類(lèi)型
      	
      	z=(uchar)(y>>2);     //8位長(zhǎng)整型數(shù)據(jù)強(qiáng)制轉(zhuǎn)為8位字符型
      	ChannelAmplitudeTuningWorddata[0]= z ;
      	z=(uchar)(y<<6);		// 取低2位
      	ChannelAmplitudeTuningWorddata[1] = (z & 0xC0);
      	ChannelAmplitudeTuningWorddata[2] = 0x00;
      	ChannelAmplitudeTuningWorddata[3] = 0x00;
      
      /* 
      	z=(uchar)(y>>8);
      	ChannelAmplitudeTuningWorddata[2]=z;
      	
      	z=(uchar)(y>>0);
      	ChannelAmplitudeTuningWorddata[3]=z;
       */
      }
      
      
      void WrAmplitudeTuningWorddata1(double f, uchar *ChannelAmplitudeTuningWorddata, uchar *ASRAmplituteWordata) // 設(shè)置輸出幅度的大小
      																																								//計(jì)算過(guò)程注意與計(jì)算頻率區(qū)別
      { 
      	unsigned char z;
      	
      	unsigned long int y;
      	double x;					
      	x=1024.0/1024;	//幅度控制字計(jì)算
      	f=f*x*2.1;                      
      	y=(unsigned long int)f;				//強(qiáng)制轉(zhuǎn)換類(lèi)型
      	
      	ASRAmplituteWordata[0] = ChannelAmplitudeTuningWorddata[0] ;
      // 	ASRAmplituteWordata[1] = ChannelAmplitudeTuningWorddata[1] ;
      // 	ASRAmplituteWordata[2] = ChannelAmplitudeTuningWorddata[2] ;
      	
      	z=(uchar)(y>>8);     //8位長(zhǎng)整型數(shù)據(jù)強(qiáng)制轉(zhuǎn)為8位字符型
      	ChannelAmplitudeTuningWorddata[1] = (ChannelAmplitudeTuningWorddata[1] & 0xfc );
      	ASRAmplituteWordata[1] = (ChannelAmplitudeTuningWorddata[1] | z );
      	z=(uchar)(y<<0);		
      	ASRAmplituteWordata[2] = z;
      	
      
      }
      
      #endif	// #if USE_AD9959
      

      AD9959.h

      點(diǎn)擊查看代碼
      #ifndef _AD9959_H
      #define _AD9959_H
      
      #include "headers.h"
      
      #if USE_AD9959
      
      #define uchar unsigned char
      #define uint unsigned int 
      	
      //----------------------------------------------------------------------------
      // 使用方式
      ////------------------------------------------------
      //// AD9959
      ////------------------------------------------------
      //delay_ms(50);								/* 使 AD9959 先上電 */
      //AD9959_Init();							/* AD9959 初始化 */
      //AD9959_enablechannel0(); 					/* 使能通道0 */
      //AD9959_Setwavefrequency(10000.0f);		/* AD9959 輸出信號(hào):頻率 */
      //AD9959_enablechannel1(); 					/* 使能通道1 */
      //AD9959_Setwavefrequency(10000.0f);		/* AD9959 輸出信號(hào):頻率 */
      //AD9959_enablechannel2(); 					/* 使能通道2 */
      //AD9959_Setwavefrequency(10000.0f);		/* AD9959 輸出信號(hào):頻率 */
      //AD9959_enablechannel3(); 					/* 使能通道3 */
      //AD9959_Setwavefrequency(10000.0f);		/* AD9959 輸出信號(hào):頻率 */
      //----------------------------------------------------------------------------
      
      //AD998 I/O控制總線
      
      //端口C宏USE_AD9959定義
      
      // 引腳操作宏
      
      // CS 拉高 輸出高
      #define CS_1            DL_GPIO_setPins(AD9959_AD9959_CS_PORT, AD9959_AD9959_CS_PIN)        
      #define CS_0            DL_GPIO_clearPins(AD9959_AD9959_CS_PORT, AD9959_AD9959_CS_PIN)
      // SCK 拉高 輸出高
      #define SCLK_1          DL_GPIO_setPins(AD9959_AD9959_SCK_PORT, AD9959_AD9959_SCK_PIN)        
      #define SCLK_0          DL_GPIO_clearPins(AD9959_AD9959_SCK_PORT, AD9959_AD9959_SCK_PIN)
      // SD0 拉高 輸出高
      #define SDIO0_1         DL_GPIO_setPins(AD9959_AD9959_SD0_PORT, AD9959_AD9959_SD0_PIN)     
      #define SDIO0_0         DL_GPIO_clearPins(AD9959_AD9959_SD0_PORT, AD9959_AD9959_SD0_PIN)
      // IU 拉高 輸出高
      #define IO_update_1     DL_GPIO_setPins(AD9959_AD9959_IU_PORT, AD9959_AD9959_IU_PIN)       
      #define IO_update_0     DL_GPIO_clearPins(AD9959_AD9959_IU_PORT, AD9959_AD9959_IU_PIN)
      // RST 拉高 輸出高
      #define Reset_1         DL_GPIO_setPins(AD9959_AD9959_RST_PORT, AD9959_AD9959_RST_PIN)     
      #define Reset_0         DL_GPIO_clearPins(AD9959_AD9959_RST_PORT, AD9959_AD9959_RST_PIN)
      // PDN 拉低 輸出低
      #define PWR_1           DL_GPIO_setPins(AD9959_AD9959_PDN_PORT, AD9959_AD9959_PDN_PIN)     
      #define PWR_0           DL_GPIO_clearPins(AD9959_AD9959_PDN_PORT, AD9959_AD9959_PDN_PIN)
      // SD1 拉低 輸出低
      #define SDIO1_1         DL_GPIO_setPins(AD9959_AD9959_SD1_PORT, AD9959_AD9959_SD1_PIN)     
      #define SDIO1_0         DL_GPIO_clearPins(AD9959_AD9959_SD1_PORT, AD9959_AD9959_SD1_PIN)
      // SD2 拉低 輸出低
      #define SDIO2_1         DL_GPIO_setPins(AD9959_AD9959_SD2_PORT, AD9959_AD9959_SD2_PIN)     
      #define SDIO2_0         DL_GPIO_clearPins(AD9959_AD9959_SD2_PORT, AD9959_AD9959_SD2_PIN)
      // SD3 拉低 輸出低
      #define SDIO3_1  	    DL_GPIO_setPins(AD9959_AD9959_SD3_PORT, AD9959_AD9959_SD3_PIN)     
      #define SDIO3_0         DL_GPIO_clearPins(AD9959_AD9959_SD3_PORT, AD9959_AD9959_SD3_PIN)
      
      // #define PS0_1 (HAL_GPIO_WritePin(AD9959_PS0_GPIO_Port, AD9959_PS0_Pin, GPIO_PIN_SET)) 
      // #define PS0_0 (HAL_GPIO_WritePin(AD9959_PS0_GPIO_Port, AD9959_PS0_Pin, GPIO_PIN_RESET)) 
      
      // #define PS1_1 (HAL_GPIO_WritePin(AD9959_PS1_GPIO_Port, AD9959_PS1_Pin, GPIO_PIN_SET)) 
      // #define PS1_0 (HAL_GPIO_WritePin(AD9959_PS1_GPIO_Port, AD9959_PS1_Pin, GPIO_PIN_RESET))
      
      // #define PS2_1 (HAL_GPIO_WritePin(AD9959_PS2_GPIO_Port, AD9959_PS2_Pin, GPIO_PIN_SET)) 
      // #define PS2_0 (HAL_GPIO_WritePin(AD9959_PS2_GPIO_Port, AD9959_PS2_Pin, GPIO_PIN_RESET))	
      
      // #define PS3_1 (HAL_GPIO_WritePin(AD9959_PS3_GPIO_Port, AD9959_PS3_Pin, GPIO_PIN_SET)) 
      // #define PS3_0 (HAL_GPIO_WritePin(AD9959_PS3_GPIO_Port, AD9959_PS3_Pin, GPIO_PIN_RESET))
      
      //-----------------------------------------------------------------
      // 外部函數(shù)聲明
      //-----------------------------------------------------------------
      extern void AD9959_Init(void);  //復(fù)位
      extern void WrFrequencyTuningWorddata(double f,uchar *ChannelFrequencyTuningWorddata);
      extern void IO_update(void)  ;
      extern void WriteToAD9959ViaSpi(uchar RegisterAddress, uchar NumberofRegisters, uchar *RegisterData,uchar temp) ;
      extern void WrPhaseOffsetTuningWorddata(double f,uchar *ChannelPhaseOffsetTuningWorddata);
      extern void WrAmplitudeTuningWorddata(double f,uchar *ChannelAmplitudeTuningWorddata);//計(jì)算過(guò)程注意與計(jì)算頻率區(qū)別
      extern void WrAmplitudeTuningWorddata1(double f,uchar *ChannelAmplitudeTuningWorddata,uchar *ASRAmplituteWordata);
      
      #endif	// #if USE_AD9959
      
      #endif	// #ifndef _AD9959_H
      
      

      AD9959_Outset.c

      點(diǎn)擊查看代碼
      #include "AD9959_Outset.h"
      #include "AD9959.h"
      
      #if USE_AD9959
      
      //--------通道寄存器地址宏定義---------------//
      #define CSR 0x00               //通道選擇寄存器
      #define FR1 0x01               //功能寄存器1
      #define FR2 0x02               //功能寄存器2
      #define CFR 0x03               //通道功能寄存器
      #define CFTW0 0x04             //32位通道頻率轉(zhuǎn)換字寄存器
      #define CPOW0 0x05             //14位通道相位轉(zhuǎn)換字寄存器
      #define ACR 0x06               //幅度控制寄存器
      #define SRR 0x07               //線性掃描定時(shí)器
      #define RDW 0x08               //線性向上掃描定時(shí)器
      #define FDW 0x09               //線性向下掃描定時(shí)器
      
      #define uchar unsigned char
      #define uint unsigned int
      	
      void AD9959_enablechannelall(void)               //全部通道使能
      {
      	uchar ChannelSelectRegisterdata0[1] = {0x10};  // 通道選擇寄存器,3線傳輸,數(shù)據(jù)高位優(yōu)先
      	uchar ChannelSelectRegisterdata1[1] = {0x20};  // 通道選擇寄存器,3線傳輸,數(shù)據(jù)高位優(yōu)先
      	uchar ChannelSelectRegisterdata2[1] = {0x40};  // 通道選擇寄存器,3線傳輸,數(shù)據(jù)高位優(yōu)先 
      	uchar ChannelSelectRegisterdata3[1] = {0x80};  // 通道選擇寄存器,3線傳輸,數(shù)據(jù)高位優(yōu)先 
      
      	
      	WriteToAD9959ViaSpi(CSR,1,ChannelSelectRegisterdata0,0);
      	WriteToAD9959ViaSpi(CSR,1,ChannelSelectRegisterdata1,0);
      	WriteToAD9959ViaSpi(CSR,1,ChannelSelectRegisterdata2,0);
      	WriteToAD9959ViaSpi(CSR,1,ChannelSelectRegisterdata3,0);
      }
      
      
      void AD9959_enablechannel0(void)                 //通道0使能
      {
      	uchar ChannelSelectRegisterdata0[1] = {0x10};  // 通道選擇寄存器,3線傳輸,數(shù)據(jù)高位優(yōu)先
      																			
      	WriteToAD9959ViaSpi(CSR,1,ChannelSelectRegisterdata0,0); 
      }
      
      void AD9959_enablechannel1(void)                  //通道1使能
      {
      	uchar ChannelSelectRegisterdata1[1] = {0x20};   // 通道選擇寄存器,3線傳輸,數(shù)據(jù)高位優(yōu)先 
      																									// SDIO0 數(shù)據(jù)輸入 and SDIO2 數(shù)據(jù)輸出
      	WriteToAD9959ViaSpi(CSR,1,ChannelSelectRegisterdata1,0); 
      }
      void AD9959_enablechannel2(void)                  //通道1使能
      {
      	uchar ChannelSelectRegisterdata2[1] = {0x40};   // 通道選擇寄存器,3線傳輸,數(shù)據(jù)高位優(yōu)先 
      																									// SDIO0 數(shù)據(jù)輸入 and SDIO2 數(shù)據(jù)輸出
      	WriteToAD9959ViaSpi(CSR,1,ChannelSelectRegisterdata2,0); 
      }
      void AD9959_enablechannel3(void)                  //通道1使能
      {
      	uchar ChannelSelectRegisterdata3[1] = {0x80};   // 通道選擇寄存器,3線傳輸,數(shù)據(jù)高位優(yōu)先 
      																									// SDIO0 數(shù)據(jù)輸入 and SDIO2 數(shù)據(jù)輸出
      	WriteToAD9959ViaSpi(CSR,1,ChannelSelectRegisterdata3,0); 
      }
      
      
      
      void AD9959_Setwavefrequency (double f)  	                       //輸出單個(gè)頻率
      { 
       uchar ChannelFrequencyTuningWord1data[4];  
       uchar ChannelFunctionRegisterdata[3] = {0x00,0x23,0x35};        //單頻模式時(shí)選擇,啟用正弦功能(sine)
       uchar FunctionRegister1data[3] = {0xD0,0x00,0x00};  
       
      		
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器,目的是為了實(shí)現(xiàn)正余弦功能
      																																 //(沒(méi)有要求時(shí)可以不設(shè)置該寄存器同樣也可以正常輸出)
      																																 //寄存器8、9位控制輸出幅度,分四個(gè)檔位
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord1data);   //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord1data,1); //寫(xiě)入頻率控制字	
      }
      
      void AD9959_Setwavephase(double f,int p)													//輸出相位程序可調(diào)
      {
       uchar ChannelPhaseOffsetTuningWorddata[2];
       uchar ChannelFrequencyTuningWorddata[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0x00,0x23,0x35};        //單頻模式時(shí)選擇,啟用正弦功能(sine)
       uchar FunctionRegister1data[3] = {0xD0,0x00,0x00};   
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	  //設(shè)置功能寄存器
       
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器,目的是為了實(shí)現(xiàn)正余弦功能
       
       WrPhaseOffsetTuningWorddata(p,ChannelPhaseOffsetTuningWorddata); //設(shè)置相位轉(zhuǎn)換字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWorddata,0); //寫(xiě)入相位控制字
      
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWorddata);  	  //設(shè)置頻率轉(zhuǎn)換字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWorddata,1);		//寫(xiě)入頻率控制字
       
       
      }	
      
      void AD9959_Setwaveamplitute(double f,int a)                     //輸出幅度可自定義調(diào)節(jié)
      {
       uchar ChannelFrequencyTuningWorddata[4];
       uchar ASRAmplituteWordata[3];
       uchar AmplitudeControldata[3] = {0xff,0x17,0xff};               //手動(dòng)控制輸出幅度
       uchar ChannelFunctionRegisterdata[3] = {0x00,0x23,0x35};        //單頻模式時(shí)選擇,啟用正弦功能(sine)
       
       uchar FunctionRegister1data[3] = {0xD0,0x00,0x00}; 
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器,目的是為了實(shí)現(xiàn)正余弦功能
       WrAmplitudeTuningWorddata1(a,AmplitudeControldata,ASRAmplituteWordata) ;
       WriteToAD9959ViaSpi(ACR,3,ASRAmplituteWordata,0);              //設(shè)置輸出幅度控制模式
      
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWorddata);   //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWorddata,1); //寫(xiě)入頻率轉(zhuǎn)換字
      }
      //設(shè)置二階調(diào)制
      //////////////////////////////////////////////////////
      void AD9959_SetFremodulation2(double f1,double f2)
      {  
      // 	 u8 a2 = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0x00,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器 	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
      	 //設(shè)置起始頻率S0(0x0A)
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);   //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      	
      	//設(shè)置終止頻率E0(0x04)
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord1data,1);  //寫(xiě)入頻率控制字
      
      }
      
      void AD9959_SetPhamodulation2(double f,int p1,int p2)              //p1起始相位,p2終止相位
      {
      // 	 uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord0data[2];
       uchar ChannelPhaseOffsetTuningWord1data[2];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x34};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//二級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0x00,0x00}; 
      // 	 uchar FunctionRegister1data[3] = {0xD0,0x54,0x00};    						//二級(jí)調(diào)制時(shí)需進(jìn)行幅度RU/RD時(shí)選擇
      																																		//PO進(jìn)行調(diào)頻,P2進(jìn)行幅度RU/RD
      // 	 uchar AmplitudeControldata[3] = {0xff,0x1f,0xff}; 								//開(kāi)啟RU/RD
      	 
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      //    WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0);    					//需輸出幅度RU/RD模式才選擇,且要修改功能寄存器FR1
      	//設(shè)置地址0x05(CPOW0) 的相位
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,0);	//寫(xiě)入相位控制字
       //設(shè)置地址0x0a(CW1) 的相位
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,0);		//寫(xiě)入相位控制字
      // f=2000000;    //設(shè)置輸出頻率
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord1data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord1data,1);		//寫(xiě)入頻率控制字	
      }
      
      void AD9959_SetAM2(double f)
      { 
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelAmplitudeTuningWorddata[4]={0x1f,0x30,0x00,0x00}; //72mV
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};  //500mV 
       uchar FunctionRegister1data[3]={0xD0,0x00,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
       
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWorddata,0);	 // 設(shè)置幅度大小(S2)
      																																	//設(shè)置輸出頻率大小
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
       
      }
      
      /////////////////////////////////////////////////////////////////////
      
      //四階調(diào)制   CH0/1      
      //////////////////////////////////////////////////////////////////////
      void AD9959_SetFremodulation4(double f1,double f2,double f3,double f4)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0x01,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation4(double f,int p1,int p2,int p3,int p4)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//四級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0x01,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
       
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM4(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0x8f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0x5f,0x30,0x00,0x00};
       
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0x01,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      
      /////////////////////////////////////////////////////////////////////////
      //  四階調(diào)制 CH2/3    
      /////////////////////////////////////////////////////////////////////////
      
      void AD9959_SetFremodulation42(double f1,double f2,double f3,double f4)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0x51,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation42(double f,int p1,int p2,int p3,int p4)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//四級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0x51,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM42(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0x8f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0x5f,0x30,0x00,0x00};
       
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0x51,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      
      /////////////////////////////////////////////////////////////////////////
      //  八階調(diào)制 CH0  
      /////////////////////////////////////////////////////////////////////////
      
      void AD9959_SetFremodulation80(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFrequencyTuningWord4data[4];
       uchar ChannelFrequencyTuningWord5data[4];
       uchar ChannelFrequencyTuningWord6data[4];
       uchar ChannelFrequencyTuningWord7data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0xc2,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f5,ChannelFrequencyTuningWord4data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0D,4,ChannelFrequencyTuningWord4data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f6,ChannelFrequencyTuningWord5data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0E,4,ChannelFrequencyTuningWord5data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f7,ChannelFrequencyTuningWord6data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0F,4,ChannelFrequencyTuningWord6data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f8,ChannelFrequencyTuningWord7data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x10,4,ChannelFrequencyTuningWord7data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation80(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       uchar ChannelPhaseOffsetTuningWord4data[4];
       uchar ChannelPhaseOffsetTuningWord5data[4];
       uchar ChannelPhaseOffsetTuningWord6data[4];
       uchar ChannelPhaseOffsetTuningWord7data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//八級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0xc2,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p5,ChannelPhaseOffsetTuningWord4data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0d,4,ChannelPhaseOffsetTuningWord4data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p6,ChannelPhaseOffsetTuningWord5data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0e,4,ChannelPhaseOffsetTuningWord5data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p7,ChannelPhaseOffsetTuningWord6data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0f,4,ChannelPhaseOffsetTuningWord6data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p8,ChannelPhaseOffsetTuningWord7data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x10,4,ChannelPhaseOffsetTuningWord7data,1);		//寫(xiě)入相位控制字
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM80(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
      
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0xbf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0x9f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord4data[4]={0x7f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord5data[4]={0x5f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord6data[4]={0x3f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord7data[4]={0x1f,0x30,0x00,0x00};
       
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0xc2,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
      
       WriteToAD9959ViaSpi(0x0d,4,ChannelAmplitudeTuningWord4data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0e,4,ChannelAmplitudeTuningWord5data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0f,4,ChannelAmplitudeTuningWord6data,0);
      
       WriteToAD9959ViaSpi(0x10,4,ChannelAmplitudeTuningWord7data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      /////////////////////////////////////////////////////////////////////////
      //  八階調(diào)制 CH1
      /////////////////////////////////////////////////////////////////////////
      
      void AD9959_SetFremodulation81(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFrequencyTuningWord4data[4];
       uchar ChannelFrequencyTuningWord5data[4];
       uchar ChannelFrequencyTuningWord6data[4];
       uchar ChannelFrequencyTuningWord7data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0xd2,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f5,ChannelFrequencyTuningWord4data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0D,4,ChannelFrequencyTuningWord4data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f6,ChannelFrequencyTuningWord5data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0E,4,ChannelFrequencyTuningWord5data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f7,ChannelFrequencyTuningWord6data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0F,4,ChannelFrequencyTuningWord6data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f8,ChannelFrequencyTuningWord7data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x10,4,ChannelFrequencyTuningWord7data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation81(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       uchar ChannelPhaseOffsetTuningWord4data[4];
       uchar ChannelPhaseOffsetTuningWord5data[4];
       uchar ChannelPhaseOffsetTuningWord6data[4];
       uchar ChannelPhaseOffsetTuningWord7data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//八級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0xd2,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p5,ChannelPhaseOffsetTuningWord4data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0d,4,ChannelPhaseOffsetTuningWord4data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p6,ChannelPhaseOffsetTuningWord5data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0e,4,ChannelPhaseOffsetTuningWord5data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p7,ChannelPhaseOffsetTuningWord6data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0f,4,ChannelPhaseOffsetTuningWord6data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p8,ChannelPhaseOffsetTuningWord7data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x10,4,ChannelPhaseOffsetTuningWord7data,1);		//寫(xiě)入相位控制字
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM81(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
      
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0xbf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0x9f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord4data[4]={0x7f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord5data[4]={0x5f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord6data[4]={0x3f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord7data[4]={0x1f,0x30,0x00,0x00};
       
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0xd2,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
       
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
      
       WriteToAD9959ViaSpi(0x0d,4,ChannelAmplitudeTuningWord4data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0e,4,ChannelAmplitudeTuningWord5data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0f,4,ChannelAmplitudeTuningWord6data,0);
      
       WriteToAD9959ViaSpi(0x10,4,ChannelAmplitudeTuningWord7data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      /////////////////////////////////////////////////////////////////////////
      //  八階調(diào)制 CH2    
      /////////////////////////////////////////////////////////////////////////
      
      void AD9959_SetFremodulation82(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFrequencyTuningWord4data[4];
       uchar ChannelFrequencyTuningWord5data[4];
       uchar ChannelFrequencyTuningWord6data[4];
       uchar ChannelFrequencyTuningWord7data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0xe2,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f5,ChannelFrequencyTuningWord4data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0D,4,ChannelFrequencyTuningWord4data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f6,ChannelFrequencyTuningWord5data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0E,4,ChannelFrequencyTuningWord5data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f7,ChannelFrequencyTuningWord6data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0F,4,ChannelFrequencyTuningWord6data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f8,ChannelFrequencyTuningWord7data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x10,4,ChannelFrequencyTuningWord7data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation82(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       uchar ChannelPhaseOffsetTuningWord4data[4];
       uchar ChannelPhaseOffsetTuningWord5data[4];
       uchar ChannelPhaseOffsetTuningWord6data[4];
       uchar ChannelPhaseOffsetTuningWord7data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//八級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0xe2,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p5,ChannelPhaseOffsetTuningWord4data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0d,4,ChannelPhaseOffsetTuningWord4data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p6,ChannelPhaseOffsetTuningWord5data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0e,4,ChannelPhaseOffsetTuningWord5data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p7,ChannelPhaseOffsetTuningWord6data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0f,4,ChannelPhaseOffsetTuningWord6data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p8,ChannelPhaseOffsetTuningWord7data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x10,4,ChannelPhaseOffsetTuningWord7data,1);		//寫(xiě)入相位控制字
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM82(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
      
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0xbf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0x9f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord4data[4]={0x7f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord5data[4]={0x5f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord6data[4]={0x3f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord7data[4]={0x1f,0x30,0x00,0x00};
       
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0xe2,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
      
       WriteToAD9959ViaSpi(0x0d,4,ChannelAmplitudeTuningWord4data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0e,4,ChannelAmplitudeTuningWord5data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0f,4,ChannelAmplitudeTuningWord6data,0);
      
       WriteToAD9959ViaSpi(0x10,4,ChannelAmplitudeTuningWord7data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      
      /////////////////////////////////////////////////////////////////////////
      //  八階調(diào)制 CH3    
      /////////////////////////////////////////////////////////////////////////
      
      void AD9959_SetFremodulation83(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFrequencyTuningWord4data[4];
       uchar ChannelFrequencyTuningWord5data[4];
       uchar ChannelFrequencyTuningWord6data[4];
       uchar ChannelFrequencyTuningWord7data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0xf2,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f5,ChannelFrequencyTuningWord4data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0D,4,ChannelFrequencyTuningWord4data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f6,ChannelFrequencyTuningWord5data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0E,4,ChannelFrequencyTuningWord5data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f7,ChannelFrequencyTuningWord6data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0F,4,ChannelFrequencyTuningWord6data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f8,ChannelFrequencyTuningWord7data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x10,4,ChannelFrequencyTuningWord7data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation83(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       uchar ChannelPhaseOffsetTuningWord4data[4];
       uchar ChannelPhaseOffsetTuningWord5data[4];
       uchar ChannelPhaseOffsetTuningWord6data[4];
       uchar ChannelPhaseOffsetTuningWord7data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//八級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0xf2,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p5,ChannelPhaseOffsetTuningWord4data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0d,4,ChannelPhaseOffsetTuningWord4data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p6,ChannelPhaseOffsetTuningWord5data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0e,4,ChannelPhaseOffsetTuningWord5data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p7,ChannelPhaseOffsetTuningWord6data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0f,4,ChannelPhaseOffsetTuningWord6data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p8,ChannelPhaseOffsetTuningWord7data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x10,4,ChannelPhaseOffsetTuningWord7data,1);		//寫(xiě)入相位控制字
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM83(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
      
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0xbf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0x9f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord4data[4]={0x7f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord5data[4]={0x5f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord6data[4]={0x3f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord7data[4]={0x1f,0x30,0x00,0x00};
       
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0xf2,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
      
       WriteToAD9959ViaSpi(0x0d,4,ChannelAmplitudeTuningWord4data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0e,4,ChannelAmplitudeTuningWord5data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0f,4,ChannelAmplitudeTuningWord6data,0);
      
       WriteToAD9959ViaSpi(0x10,4,ChannelAmplitudeTuningWord7data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      
      
      /////////////////////////////////////////////////////////////////////////
      //  十六階調(diào)制 CH0   
      /////////////////////////////////////////////////////////////////////////
      void AD9959_SetFremodulation160(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8,double f9,double f10,double f11,double f12,double f13,double f14,double f15,double f16)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFrequencyTuningWord4data[4];
       uchar ChannelFrequencyTuningWord5data[4];
       uchar ChannelFrequencyTuningWord6data[4];
       uchar ChannelFrequencyTuningWord7data[4];
       uchar ChannelFrequencyTuningWord8data[4];
       uchar ChannelFrequencyTuningWord9data[4];
       uchar ChannelFrequencyTuningWord10data[4];
       uchar ChannelFrequencyTuningWord11data[4];
       uchar ChannelFrequencyTuningWord12data[4];
       uchar ChannelFrequencyTuningWord13data[4];
       uchar ChannelFrequencyTuningWord14data[4];
       uchar ChannelFrequencyTuningWord15data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0xc3,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f5,ChannelFrequencyTuningWord4data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0D,4,ChannelFrequencyTuningWord4data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f6,ChannelFrequencyTuningWord5data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0E,4,ChannelFrequencyTuningWord5data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f7,ChannelFrequencyTuningWord6data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0F,4,ChannelFrequencyTuningWord6data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f8,ChannelFrequencyTuningWord7data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x10,4,ChannelFrequencyTuningWord7data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f9,ChannelFrequencyTuningWord8data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x11,4,ChannelFrequencyTuningWord8data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f10,ChannelFrequencyTuningWord9data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x12,4,ChannelFrequencyTuningWord9data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f11,ChannelFrequencyTuningWord10data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x13,4,ChannelFrequencyTuningWord10data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f12,ChannelFrequencyTuningWord11data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x14,4,ChannelFrequencyTuningWord11data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f13,ChannelFrequencyTuningWord12data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x15,4,ChannelFrequencyTuningWord12data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f14,ChannelFrequencyTuningWord13data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x16,4,ChannelFrequencyTuningWord13data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f15,ChannelFrequencyTuningWord14data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x017,4,ChannelFrequencyTuningWord14data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f16,ChannelFrequencyTuningWord15data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x18,4,ChannelFrequencyTuningWord15data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation160(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12,int p13,int p14,int p15,int p16)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       uchar ChannelPhaseOffsetTuningWord4data[4];
       uchar ChannelPhaseOffsetTuningWord5data[4];
       uchar ChannelPhaseOffsetTuningWord6data[4];
       uchar ChannelPhaseOffsetTuningWord7data[4];
       uchar ChannelPhaseOffsetTuningWord8data[4];
       uchar ChannelPhaseOffsetTuningWord9data[4];
       uchar ChannelPhaseOffsetTuningWord10data[4];
       uchar ChannelPhaseOffsetTuningWord11data[4];
       uchar ChannelPhaseOffsetTuningWord12data[4];
       uchar ChannelPhaseOffsetTuningWord13data[4];
       uchar ChannelPhaseOffsetTuningWord14data[4];
       uchar ChannelPhaseOffsetTuningWord15data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//十六級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0xc3,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p5,ChannelPhaseOffsetTuningWord4data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0d,4,ChannelPhaseOffsetTuningWord4data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p6,ChannelPhaseOffsetTuningWord5data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0e,4,ChannelPhaseOffsetTuningWord5data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p7,ChannelPhaseOffsetTuningWord6data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0f,4,ChannelPhaseOffsetTuningWord6data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p8,ChannelPhaseOffsetTuningWord7data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x10,4,ChannelPhaseOffsetTuningWord7data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p9,ChannelPhaseOffsetTuningWord8data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x11,4,ChannelPhaseOffsetTuningWord8data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p10,ChannelPhaseOffsetTuningWord9data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x12,4,ChannelPhaseOffsetTuningWord9data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p11,ChannelPhaseOffsetTuningWord10data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x13,4,ChannelPhaseOffsetTuningWord10data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p12,ChannelPhaseOffsetTuningWord11data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x14,4,ChannelPhaseOffsetTuningWord11data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p13,ChannelPhaseOffsetTuningWord12data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x15,4,ChannelPhaseOffsetTuningWord12data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p14,ChannelPhaseOffsetTuningWord13data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x16,4,ChannelPhaseOffsetTuningWord13data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p15,ChannelPhaseOffsetTuningWord14data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x17,4,ChannelPhaseOffsetTuningWord14data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p16,ChannelPhaseOffsetTuningWord15data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x18,4,ChannelPhaseOffsetTuningWord15data,1);		//寫(xiě)入相位控制字
       
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM160(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
      
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xef,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0xcf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord4data[4]={0xbf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord5data[4]={0xaf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord6data[4]={0x9f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord7data[4]={0x8f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord8data[4]={0x7f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord9data[4]={0x6f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord10data[4]={0x5f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord11data[4]={0x4f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord12data[4]={0x3f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord13data[4]={0x2f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord14data[4]={0x1f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord15data[4]={0x0f,0x30,0x00,0x00};
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0xc3,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
      
       WriteToAD9959ViaSpi(0x0d,4,ChannelAmplitudeTuningWord4data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0e,4,ChannelAmplitudeTuningWord5data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0f,4,ChannelAmplitudeTuningWord6data,0);
      
       WriteToAD9959ViaSpi(0x10,4,ChannelAmplitudeTuningWord7data,0);
      
       WriteToAD9959ViaSpi(0x11,4,ChannelAmplitudeTuningWord8data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x12,4,ChannelAmplitudeTuningWord9data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x13,4,ChannelAmplitudeTuningWord10data,0);
      
       WriteToAD9959ViaSpi(0x14,4,ChannelAmplitudeTuningWord11data,0);
      
       WriteToAD9959ViaSpi(0x15,4,ChannelAmplitudeTuningWord12data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x16,4,ChannelAmplitudeTuningWord13data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x17,4,ChannelAmplitudeTuningWord14data,0);
      
       WriteToAD9959ViaSpi(0x18,4,ChannelAmplitudeTuningWord15data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      /////////////////////////////////////////////////////////////////////////
      //  十六階調(diào)制 CH1  
      /////////////////////////////////////////////////////////////////////////
      void AD9959_SetFremodulation161(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8,double f9,double f10,double f11,double f12,double f13,double f14,double f15,double f16)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFrequencyTuningWord4data[4];
       uchar ChannelFrequencyTuningWord5data[4];
       uchar ChannelFrequencyTuningWord6data[4];
       uchar ChannelFrequencyTuningWord7data[4];
       uchar ChannelFrequencyTuningWord8data[4];
       uchar ChannelFrequencyTuningWord9data[4];
       uchar ChannelFrequencyTuningWord10data[4];
       uchar ChannelFrequencyTuningWord11data[4];
       uchar ChannelFrequencyTuningWord12data[4];
       uchar ChannelFrequencyTuningWord13data[4];
       uchar ChannelFrequencyTuningWord14data[4];
       uchar ChannelFrequencyTuningWord15data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0xd3,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f5,ChannelFrequencyTuningWord4data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0D,4,ChannelFrequencyTuningWord4data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f6,ChannelFrequencyTuningWord5data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0E,4,ChannelFrequencyTuningWord5data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f7,ChannelFrequencyTuningWord6data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0F,4,ChannelFrequencyTuningWord6data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f8,ChannelFrequencyTuningWord7data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x10,4,ChannelFrequencyTuningWord7data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f9,ChannelFrequencyTuningWord8data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x11,4,ChannelFrequencyTuningWord8data,0);  //寫(xiě)入頻率控制字
       
       WrFrequencyTuningWorddata(f10,ChannelFrequencyTuningWord9data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x12,4,ChannelFrequencyTuningWord9data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f11,ChannelFrequencyTuningWord10data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x13,4,ChannelFrequencyTuningWord10data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f12,ChannelFrequencyTuningWord11data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x14,4,ChannelFrequencyTuningWord11data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f13,ChannelFrequencyTuningWord12data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x15,4,ChannelFrequencyTuningWord12data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f14,ChannelFrequencyTuningWord13data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x16,4,ChannelFrequencyTuningWord13data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f15,ChannelFrequencyTuningWord14data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x017,4,ChannelFrequencyTuningWord14data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f16,ChannelFrequencyTuningWord15data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x18,4,ChannelFrequencyTuningWord15data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation161(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12,int p13,int p14,int p15,int p16)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       uchar ChannelPhaseOffsetTuningWord4data[4];
       uchar ChannelPhaseOffsetTuningWord5data[4];
       uchar ChannelPhaseOffsetTuningWord6data[4];
       uchar ChannelPhaseOffsetTuningWord7data[4];
       uchar ChannelPhaseOffsetTuningWord8data[4];
       uchar ChannelPhaseOffsetTuningWord9data[4];
       uchar ChannelPhaseOffsetTuningWord10data[4];
       uchar ChannelPhaseOffsetTuningWord11data[4];
       uchar ChannelPhaseOffsetTuningWord12data[4];
       uchar ChannelPhaseOffsetTuningWord13data[4];
       uchar ChannelPhaseOffsetTuningWord14data[4];
       uchar ChannelPhaseOffsetTuningWord15data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//十六級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0xd3,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p5,ChannelPhaseOffsetTuningWord4data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0d,4,ChannelPhaseOffsetTuningWord4data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p6,ChannelPhaseOffsetTuningWord5data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0e,4,ChannelPhaseOffsetTuningWord5data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p7,ChannelPhaseOffsetTuningWord6data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0f,4,ChannelPhaseOffsetTuningWord6data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p8,ChannelPhaseOffsetTuningWord7data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x10,4,ChannelPhaseOffsetTuningWord7data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p9,ChannelPhaseOffsetTuningWord8data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x11,4,ChannelPhaseOffsetTuningWord8data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p10,ChannelPhaseOffsetTuningWord9data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x12,4,ChannelPhaseOffsetTuningWord9data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p11,ChannelPhaseOffsetTuningWord10data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x13,4,ChannelPhaseOffsetTuningWord10data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p12,ChannelPhaseOffsetTuningWord11data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x14,4,ChannelPhaseOffsetTuningWord11data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p13,ChannelPhaseOffsetTuningWord12data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x15,4,ChannelPhaseOffsetTuningWord12data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p14,ChannelPhaseOffsetTuningWord13data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x16,4,ChannelPhaseOffsetTuningWord13data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p15,ChannelPhaseOffsetTuningWord14data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x17,4,ChannelPhaseOffsetTuningWord14data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p16,ChannelPhaseOffsetTuningWord15data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x18,4,ChannelPhaseOffsetTuningWord15data,1);		//寫(xiě)入相位控制字
       
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM161(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
      
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xef,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0xcf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord4data[4]={0xbf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord5data[4]={0xaf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord6data[4]={0x9f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord7data[4]={0x8f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord8data[4]={0x7f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord9data[4]={0x6f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord10data[4]={0x5f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord11data[4]={0x4f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord12data[4]={0x3f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord13data[4]={0x2f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord14data[4]={0x1f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord15data[4]={0x0f,0x30,0x00,0x00};
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0xd3,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
      
       WriteToAD9959ViaSpi(0x0d,4,ChannelAmplitudeTuningWord4data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0e,4,ChannelAmplitudeTuningWord5data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0f,4,ChannelAmplitudeTuningWord6data,0);
      
       WriteToAD9959ViaSpi(0x10,4,ChannelAmplitudeTuningWord7data,0);
      
       WriteToAD9959ViaSpi(0x11,4,ChannelAmplitudeTuningWord8data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x12,4,ChannelAmplitudeTuningWord9data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x13,4,ChannelAmplitudeTuningWord10data,0);
      
       WriteToAD9959ViaSpi(0x14,4,ChannelAmplitudeTuningWord11data,0);
      
       WriteToAD9959ViaSpi(0x15,4,ChannelAmplitudeTuningWord12data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x16,4,ChannelAmplitudeTuningWord13data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x17,4,ChannelAmplitudeTuningWord14data,0);
      
       WriteToAD9959ViaSpi(0x18,4,ChannelAmplitudeTuningWord15data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      
      /////////////////////////////////////////////////////////////////////////
      //  十六階調(diào)制 CH2 
      /////////////////////////////////////////////////////////////////////////
      void AD9959_SetFremodulation162(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8,double f9,double f10,double f11,double f12,double f13,double f14,double f15,double f16)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFrequencyTuningWord4data[4];
       uchar ChannelFrequencyTuningWord5data[4];
       uchar ChannelFrequencyTuningWord6data[4];
       uchar ChannelFrequencyTuningWord7data[4];
       uchar ChannelFrequencyTuningWord8data[4];
       uchar ChannelFrequencyTuningWord9data[4];
       uchar ChannelFrequencyTuningWord10data[4];
       uchar ChannelFrequencyTuningWord11data[4];
       uchar ChannelFrequencyTuningWord12data[4];
       uchar ChannelFrequencyTuningWord13data[4];
       uchar ChannelFrequencyTuningWord14data[4];
       uchar ChannelFrequencyTuningWord15data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0xe3,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f5,ChannelFrequencyTuningWord4data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0D,4,ChannelFrequencyTuningWord4data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f6,ChannelFrequencyTuningWord5data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0E,4,ChannelFrequencyTuningWord5data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f7,ChannelFrequencyTuningWord6data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0F,4,ChannelFrequencyTuningWord6data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f8,ChannelFrequencyTuningWord7data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x10,4,ChannelFrequencyTuningWord7data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f9,ChannelFrequencyTuningWord8data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x11,4,ChannelFrequencyTuningWord8data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f10,ChannelFrequencyTuningWord9data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x12,4,ChannelFrequencyTuningWord9data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f11,ChannelFrequencyTuningWord10data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x13,4,ChannelFrequencyTuningWord10data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f12,ChannelFrequencyTuningWord11data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x14,4,ChannelFrequencyTuningWord11data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f13,ChannelFrequencyTuningWord12data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x15,4,ChannelFrequencyTuningWord12data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f14,ChannelFrequencyTuningWord13data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x16,4,ChannelFrequencyTuningWord13data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f15,ChannelFrequencyTuningWord14data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x017,4,ChannelFrequencyTuningWord14data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f16,ChannelFrequencyTuningWord15data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x18,4,ChannelFrequencyTuningWord15data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation162(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12,int p13,int p14,int p15,int p16)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       uchar ChannelPhaseOffsetTuningWord4data[4];
       uchar ChannelPhaseOffsetTuningWord5data[4];
       uchar ChannelPhaseOffsetTuningWord6data[4];
       uchar ChannelPhaseOffsetTuningWord7data[4];
       uchar ChannelPhaseOffsetTuningWord8data[4];
       uchar ChannelPhaseOffsetTuningWord9data[4];
       uchar ChannelPhaseOffsetTuningWord10data[4];
       uchar ChannelPhaseOffsetTuningWord11data[4];
       uchar ChannelPhaseOffsetTuningWord12data[4];
       uchar ChannelPhaseOffsetTuningWord13data[4];
       uchar ChannelPhaseOffsetTuningWord14data[4];
       uchar ChannelPhaseOffsetTuningWord15data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//十六級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0xe3,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p5,ChannelPhaseOffsetTuningWord4data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0d,4,ChannelPhaseOffsetTuningWord4data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p6,ChannelPhaseOffsetTuningWord5data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0e,4,ChannelPhaseOffsetTuningWord5data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p7,ChannelPhaseOffsetTuningWord6data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0f,4,ChannelPhaseOffsetTuningWord6data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p8,ChannelPhaseOffsetTuningWord7data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x10,4,ChannelPhaseOffsetTuningWord7data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p9,ChannelPhaseOffsetTuningWord8data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x11,4,ChannelPhaseOffsetTuningWord8data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p10,ChannelPhaseOffsetTuningWord9data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x12,4,ChannelPhaseOffsetTuningWord9data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p11,ChannelPhaseOffsetTuningWord10data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x13,4,ChannelPhaseOffsetTuningWord10data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p12,ChannelPhaseOffsetTuningWord11data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x14,4,ChannelPhaseOffsetTuningWord11data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p13,ChannelPhaseOffsetTuningWord12data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x15,4,ChannelPhaseOffsetTuningWord12data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p14,ChannelPhaseOffsetTuningWord13data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x16,4,ChannelPhaseOffsetTuningWord13data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p15,ChannelPhaseOffsetTuningWord14data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x17,4,ChannelPhaseOffsetTuningWord14data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p16,ChannelPhaseOffsetTuningWord15data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x18,4,ChannelPhaseOffsetTuningWord15data,1);		//寫(xiě)入相位控制字
       
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM162(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
      
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xef,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0xcf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord4data[4]={0xbf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord5data[4]={0xaf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord6data[4]={0x9f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord7data[4]={0x8f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord8data[4]={0x7f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord9data[4]={0x6f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord10data[4]={0x5f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord11data[4]={0x4f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord12data[4]={0x3f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord13data[4]={0x2f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord14data[4]={0x1f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord15data[4]={0x0f,0x30,0x00,0x00};
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0xe3,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
      
       WriteToAD9959ViaSpi(0x0d,4,ChannelAmplitudeTuningWord4data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0e,4,ChannelAmplitudeTuningWord5data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0f,4,ChannelAmplitudeTuningWord6data,0);
      
       WriteToAD9959ViaSpi(0x10,4,ChannelAmplitudeTuningWord7data,0);
      
       WriteToAD9959ViaSpi(0x11,4,ChannelAmplitudeTuningWord8data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x12,4,ChannelAmplitudeTuningWord9data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x13,4,ChannelAmplitudeTuningWord10data,0);
      
       WriteToAD9959ViaSpi(0x14,4,ChannelAmplitudeTuningWord11data,0);
      
       WriteToAD9959ViaSpi(0x15,4,ChannelAmplitudeTuningWord12data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x16,4,ChannelAmplitudeTuningWord13data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x17,4,ChannelAmplitudeTuningWord14data,0);
      
       WriteToAD9959ViaSpi(0x18,4,ChannelAmplitudeTuningWord15data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      
      
      
      
      /////////////////////////////////////////////////////////////////////////
      //  十六階調(diào)制 CH3   
      /////////////////////////////////////////////////////////////////////////
      
      void AD9959_SetFremodulation163(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8,double f9,double f10,double f11,double f12,double f13,double f14,double f15,double f16)
      {
      // 	 u8 a = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelFrequencyTuningWord1data[4];
       uchar ChannelFrequencyTuningWord2data[4];
       uchar ChannelFrequencyTuningWord3data[4];
       uchar ChannelFrequencyTuningWord4data[4];
       uchar ChannelFrequencyTuningWord5data[4];
       uchar ChannelFrequencyTuningWord6data[4];
       uchar ChannelFrequencyTuningWord7data[4];
       uchar ChannelFrequencyTuningWord8data[4];
       uchar ChannelFrequencyTuningWord9data[4];
       uchar ChannelFrequencyTuningWord10data[4];
       uchar ChannelFrequencyTuningWord11data[4];
       uchar ChannelFrequencyTuningWord12data[4];
       uchar ChannelFrequencyTuningWord13data[4];
       uchar ChannelFrequencyTuningWord14data[4];
       uchar ChannelFrequencyTuningWord15data[4];
       uchar ChannelFunctionRegisterdata[3] = {0x80,0x23,0x30};        //無(wú)RU/RD
       uchar FunctionRegister1data[3] = {0xD0,0xf3,0x00};  	 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器	 
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);       //設(shè)置通道功能寄存器
      
       WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWord0data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x04,4,ChannelFrequencyTuningWord0data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWord1data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWord1data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f3,ChannelFrequencyTuningWord2data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0B,4,ChannelFrequencyTuningWord2data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f4,ChannelFrequencyTuningWord3data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0C,4,ChannelFrequencyTuningWord3data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f5,ChannelFrequencyTuningWord4data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0D,4,ChannelFrequencyTuningWord4data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f6,ChannelFrequencyTuningWord5data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0E,4,ChannelFrequencyTuningWord5data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f7,ChannelFrequencyTuningWord6data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x0F,4,ChannelFrequencyTuningWord6data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f8,ChannelFrequencyTuningWord7data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x10,4,ChannelFrequencyTuningWord7data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f9,ChannelFrequencyTuningWord8data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x11,4,ChannelFrequencyTuningWord8data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f10,ChannelFrequencyTuningWord9data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x12,4,ChannelFrequencyTuningWord9data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f11,ChannelFrequencyTuningWord10data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x13,4,ChannelFrequencyTuningWord10data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f12,ChannelFrequencyTuningWord11data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x14,4,ChannelFrequencyTuningWord11data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f13,ChannelFrequencyTuningWord12data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x15,4,ChannelFrequencyTuningWord12data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f14,ChannelFrequencyTuningWord13data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x16,4,ChannelFrequencyTuningWord13data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f15,ChannelFrequencyTuningWord14data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x017,4,ChannelFrequencyTuningWord14data,0);  //寫(xiě)入頻率控制字
      
       WrFrequencyTuningWorddata(f16,ChannelFrequencyTuningWord15data);    //將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(0x18,4,ChannelFrequencyTuningWord15data,1);  //寫(xiě)入頻率控制字
      }
      void AD9959_SetPhamodulation163(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12,int p13,int p14,int p15,int p16)
      {
      // 	 u8 b = 0;
       uchar ChannelFrequencyTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord0data[4];
       uchar ChannelPhaseOffsetTuningWord1data[4];
       uchar ChannelPhaseOffsetTuningWord2data[4];
       uchar ChannelPhaseOffsetTuningWord3data[4];
       uchar ChannelPhaseOffsetTuningWord4data[4];
       uchar ChannelPhaseOffsetTuningWord5data[4];
       uchar ChannelPhaseOffsetTuningWord6data[4];
       uchar ChannelPhaseOffsetTuningWord7data[4];
       uchar ChannelPhaseOffsetTuningWord8data[4];
       uchar ChannelPhaseOffsetTuningWord9data[4];
       uchar ChannelPhaseOffsetTuningWord10data[4];
       uchar ChannelPhaseOffsetTuningWord11data[4];
       uchar ChannelPhaseOffsetTuningWord12data[4];
       uchar ChannelPhaseOffsetTuningWord13data[4];
       uchar ChannelPhaseOffsetTuningWord14data[4];
       uchar ChannelPhaseOffsetTuningWord15data[4];
       
       uchar ChannelFunctionRegisterdata[3] = {0xc0,0x03,0x30};  					//相位調(diào)制模式啟用(連續(xù)掃描可能開(kāi)啟)
       uchar AmplitudeControldata[3] = {0x00,0x03,0xff};									//十六級(jí)調(diào)制時(shí)啟用,默認(rèn)輸出最大
       uchar FunctionRegister1data[3] = {0xD0,0xf3,0x00}; 
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 		  //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);    			//設(shè)置通道功能寄存器,即相位調(diào)制啟動(dòng)
      
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWord0data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWord0data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWord1data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWord1data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p3,ChannelPhaseOffsetTuningWord2data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0b,4,ChannelPhaseOffsetTuningWord2data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p4,ChannelPhaseOffsetTuningWord3data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0c,4,ChannelPhaseOffsetTuningWord3data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p5,ChannelPhaseOffsetTuningWord4data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0d,4,ChannelPhaseOffsetTuningWord4data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p6,ChannelPhaseOffsetTuningWord5data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x0e,4,ChannelPhaseOffsetTuningWord5data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p7,ChannelPhaseOffsetTuningWord6data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x0f,4,ChannelPhaseOffsetTuningWord6data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p8,ChannelPhaseOffsetTuningWord7data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x10,4,ChannelPhaseOffsetTuningWord7data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p9,ChannelPhaseOffsetTuningWord8data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x11,4,ChannelPhaseOffsetTuningWord8data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p10,ChannelPhaseOffsetTuningWord9data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x12,4,ChannelPhaseOffsetTuningWord9data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p11,ChannelPhaseOffsetTuningWord10data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x13,4,ChannelPhaseOffsetTuningWord10data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p12,ChannelPhaseOffsetTuningWord11data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x14,4,ChannelPhaseOffsetTuningWord11data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p13,ChannelPhaseOffsetTuningWord12data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x15,4,ChannelPhaseOffsetTuningWord12data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p14,ChannelPhaseOffsetTuningWord13data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字?
       WriteToAD9959ViaSpi(0x16,4,ChannelPhaseOffsetTuningWord13data,1);		//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p15,ChannelPhaseOffsetTuningWord14data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x17,4,ChannelPhaseOffsetTuningWord14data,1);	//寫(xiě)入相位控制字
      
       WrPhaseOffsetTuningWorddata(p16,ChannelPhaseOffsetTuningWord15data); //將十進(jìn)制相位數(shù)轉(zhuǎn)換為2進(jìn)制相位控制字
       WriteToAD9959ViaSpi(0x18,4,ChannelPhaseOffsetTuningWord15data,1);		//寫(xiě)入相位控制字
       
       f=200000;
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);    	//將十進(jìn)制頻率數(shù)轉(zhuǎn)換為2進(jìn)制頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);		//寫(xiě)入頻率控制字
      }
      void AD9959_SetAM163(double f)
      {
      // 	 u8 cn = 0;
       uchar ChannelFrequencyTuningWord0data[4];
      
       uchar AmplitudeControldata[3]={0x00,0x03,0xff};
       uchar ChannelAmplitudeTuningWord1data[4]={0xef,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord2data[4]={0xdf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord3data[4]={0xcf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord4data[4]={0xbf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord5data[4]={0xaf,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord6data[4]={0x9f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord7data[4]={0x8f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord8data[4]={0x7f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord9data[4]={0x6f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord10data[4]={0x5f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord11data[4]={0x4f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord12data[4]={0x3f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord13data[4]={0x2f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord14data[4]={0x1f,0x30,0x00,0x00};
       uchar ChannelAmplitudeTuningWord15data[4]={0x0f,0x30,0x00,0x00};
       uchar ChannelFunctionRegisterdata[3] = {0x40,0x03,0x30};
       uchar FunctionRegister1data[3]={0xD0,0xf3,0x00};
      
       WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0); 			 //設(shè)置通道功能寄存器
      
       WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWord1data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0b,4,ChannelAmplitudeTuningWord2data,0);
      
       WriteToAD9959ViaSpi(0x0c,4,ChannelAmplitudeTuningWord3data,0);
      
       WriteToAD9959ViaSpi(0x0d,4,ChannelAmplitudeTuningWord4data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x0e,4,ChannelAmplitudeTuningWord5data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x0f,4,ChannelAmplitudeTuningWord6data,0);
      
       WriteToAD9959ViaSpi(0x10,4,ChannelAmplitudeTuningWord7data,0);
      
       WriteToAD9959ViaSpi(0x11,4,ChannelAmplitudeTuningWord8data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x12,4,ChannelAmplitudeTuningWord9data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x13,4,ChannelAmplitudeTuningWord10data,0);
      
       WriteToAD9959ViaSpi(0x14,4,ChannelAmplitudeTuningWord11data,0);
      
       WriteToAD9959ViaSpi(0x15,4,ChannelAmplitudeTuningWord12data,0); 						 //設(shè)置幅度大小(S1)
      
       WriteToAD9959ViaSpi(0x16,4,ChannelAmplitudeTuningWord13data,0);	 // 設(shè)置幅度大小(S2)
      
       WriteToAD9959ViaSpi(0x17,4,ChannelAmplitudeTuningWord14data,0);
      
       WriteToAD9959ViaSpi(0x18,4,ChannelAmplitudeTuningWord15data,0);
       
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data);   	//寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      }
      
      /////////////////////////////////////////////////////////////////////////
      void AD9959_Frequency_Sweep(double f1,double f2,double a1,double a2) //f1起始頻率,f2終止頻率,a1上升δ,a2下降δ
      { 
      uchar ChannelFrequencyTuningWorddata1[4];
      uchar ChannelFrequencyTuningWorddata2[4];
      uchar ChannelFrequencyTuningWorddata3[4];
      uchar ChannelFrequencyTuningWorddata4[4];
      uchar FunctionRegister1data[3] = {0xD0,0x00,0x00};    							//默認(rèn)情況下選擇   
      uchar ChannelFunctionRegisterdata[3] = {0x80,0x43,0x20};						//掃頻模式時(shí)選擇;連續(xù)掃描沒(méi)有啟用,無(wú)RU/RD
      uchar SweepRampRatedata[2] = {0xff,0xff};														//默認(rèn)單位掃描時(shí)間最長(zhǎng)
      //uchar FunctionRegister1data[3] = {0xD0,0x04,0x00};    							//線性掃描時(shí)需要RU/RD時(shí)選擇開(kāi)啟 
      // uchar AmplitudeControldata[3] = {0xff,0x1f,0xff};									//開(kāi)啟RU/RD
      
      WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);        		 	 	  //設(shè)置功能寄存器
      WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);  					//  設(shè)置通道功能寄存器
      // 	WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,1); 								//需輸出幅度RU/RD模式才選擇,且要修改功能寄存器FR1
      // 	f=500000;    // 設(shè)置起始頻率S0(0x04)
      
      
      WrFrequencyTuningWorddata(f1,ChannelFrequencyTuningWorddata1);   		//寫(xiě)頻率控制字
      WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWorddata1,0);
      // 	f=5000000; //設(shè)置終止頻率(0x0A)
      
      WrFrequencyTuningWorddata(f2,ChannelFrequencyTuningWorddata2);  	 //寫(xiě)頻率控制字
      WriteToAD9959ViaSpi(0x0A,4,ChannelFrequencyTuningWorddata2,0); 
      // 	f=100;   //設(shè)置上升δ
      	
      WrFrequencyTuningWorddata(a1,ChannelFrequencyTuningWorddata3);   	 //寫(xiě)頻率控制字
      WriteToAD9959ViaSpi(RDW,4,ChannelFrequencyTuningWorddata3,0);
      
      //   f=100;  //設(shè)置下降δ
      WrFrequencyTuningWorddata(a2,ChannelFrequencyTuningWorddata4);   	 //寫(xiě)頻率控制字
      WriteToAD9959ViaSpi(FDW,4,ChannelFrequencyTuningWorddata4,0);
      	
      WriteToAD9959ViaSpi(SRR,2,SweepRampRatedata,1);										 //設(shè)置單位步進(jìn)時(shí)間	
      
      }
      
      void AD9959_Phase_Sweep(int p1,int p2,int a1,int a2,double f)       //p1起始相位,p2終止相位,a1設(shè)置上升δ,a2設(shè)置下降δ
      {
      uchar ChannelPhaseOffsetTuningWorddata1[2];
      uchar ChannelPhaseOffsetTuningWorddata2[2];
      uchar ChannelPhaseOffsetTuningWorddata3[2];
      uchar ChannelPhaseOffsetTuningWorddata4[2];
      uchar ChannelFrequencyTuningWord0data[4];
      
      uchar FunctionRegister1data[3] = {0xD0,0x00,0x00};   							 //默認(rèn)情況下選擇   
      uchar ChannelFunctionRegisterdata[3] = {0xc0,0xC3,0x30};					 //掃相模式時(shí)選擇,連續(xù)掃描沒(méi)有啟用,無(wú)RU/RD
      uchar SweepRampRatedata[2] = {0xff,0xff};													 //默認(rèn)單位掃描時(shí)間最長(zhǎng)
      //uchar FunctionRegister1data[3] = {0xD0,0x04,0x00};    						 //線性掃描時(shí)需要RU/RD時(shí)選擇開(kāi)啟 
      // uchar AmplitudeControldata[3] = {0xff,0x1f,0xff};								 //開(kāi)啟RU/RD
      
      WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         		 	 //設(shè)置功能寄存器
       WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);				 //  設(shè)置通道功能寄存器
      // 	 WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,1); 						 //需輸出幅度RU/RD模式才選擇,且要修改功能寄存器FR1
      // 	 p=0;// 設(shè)置起始相位S0(0x04)   數(shù)據(jù)類(lèi)型與子函數(shù)里面不一樣
       WrPhaseOffsetTuningWorddata(p1,ChannelPhaseOffsetTuningWorddata1);
       WriteToAD9959ViaSpi(CPOW0,2,ChannelPhaseOffsetTuningWorddata1,0);
      //    p=360;//設(shè)置終止相位E0(0x0A)
       WrPhaseOffsetTuningWorddata(p2,ChannelPhaseOffsetTuningWorddata2);
       WriteToAD9959ViaSpi(0x0a,4,ChannelPhaseOffsetTuningWorddata2,0);
      //    p=10;//設(shè)置上升δ
       WrPhaseOffsetTuningWorddata(a1,ChannelPhaseOffsetTuningWorddata3);
       WriteToAD9959ViaSpi(RDW,4,ChannelPhaseOffsetTuningWorddata3,0);
      //    p=10;//設(shè)置下降δ
       WrPhaseOffsetTuningWorddata(a2,ChannelPhaseOffsetTuningWorddata4);
       WriteToAD9959ViaSpi(FDW,4,ChannelPhaseOffsetTuningWorddata4,0);
       WriteToAD9959ViaSpi(SRR,2,SweepRampRatedata,0);										//寫(xiě)單位步進(jìn)時(shí)間
      // 	 f=400000;    //設(shè)置輸出頻率大小
       WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWord0data); 		  //寫(xiě)頻率控制字
       WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWord0data,1);
      
      }
      
      void AD9959_Amplitute_Sweep(int a,int a1,int a2,double f)   					//a終止幅度,a1上升δ,a2下降δ,f輸出頻率
      {
      uchar ChannelAmplitudeTuningWorddata1[4];
      uchar ChannelAmplitudeTuningWorddata2[4];
      uchar ChannelAmplitudeTuningWorddata3[4];
      uchar ChannelFrequencyTuningWorddata4[4];
      
      uchar FunctionRegister1data[3] = {0xD0,0x00,0x00};    						//默認(rèn)情況下選擇   
      uchar ChannelFunctionRegisterdata[3] = {0x40,0x43,0x20};					//幅度掃描位啟動(dòng)
      uchar AmplitudeControldata[3] = {0x00,0x0,0x3f};  								//幅度掃描模式時(shí)啟用
      uchar SweepRampRatedata[2] = {0xff,0xff};													//默認(rèn)單位掃描時(shí)間最長(zhǎng)
      
      WriteToAD9959ViaSpi(FR1,3,FunctionRegister1data,0);         	 	  //設(shè)置功能寄存器
      WriteToAD9959ViaSpi(CFR,3,ChannelFunctionRegisterdata,0);
      //寫(xiě)起始幅度S0
      WriteToAD9959ViaSpi(ACR,3,AmplitudeControldata,0);
      //寫(xiě)終止幅度E0
      // 	a=1023; //寫(xiě)上升δ,不能寫(xiě)到1024,最大為1023
      WrAmplitudeTuningWorddata(a,ChannelAmplitudeTuningWorddata1);
      WriteToAD9959ViaSpi(0x0a,4,ChannelAmplitudeTuningWorddata1,0); 		//CTW0 address 0x04.輸出10MHZ頻率
      // 	a=10; //寫(xiě)上升δ
      WrAmplitudeTuningWorddata(a1,ChannelAmplitudeTuningWorddata2);    //寫(xiě)頻率控制字
      WriteToAD9959ViaSpi(RDW,4,ChannelAmplitudeTuningWorddata2,0);
      //   a=10;  //寫(xiě)下降δ
      WrAmplitudeTuningWorddata(a2,ChannelAmplitudeTuningWorddata3);    //寫(xiě)頻率控制字
      WriteToAD9959ViaSpi(FDW,4,ChannelAmplitudeTuningWorddata3,0);
      WriteToAD9959ViaSpi(SRR,2,SweepRampRatedata,0);										//寫(xiě)單位步進(jìn)時(shí)間
      // 	f=400000;    
      WrFrequencyTuningWorddata(f,ChannelFrequencyTuningWorddata4);   	//寫(xiě)頻率控制字
      WriteToAD9959ViaSpi(CFTW0,4,ChannelFrequencyTuningWorddata4,1);
      
      }
      
      #endif	// #if USE_AD9959
      
      

      AD9959_Outset.h

      點(diǎn)擊查看代碼
      #ifndef _AD9959_Outset_H
      #define _AD9959_Outset_H
      
      #define uchar unsigned char
      #define uint unsigned int 
      
      #include "headers.h"
      
      #if USE_AD9959
      
      /** 通道使能 ********************************************************************************************************************************************************/
      /********************************************************************************************************************************************************************/
      // extern void AllChannl_init();
      extern void AD9959_enablechannelall(void);	/* 使能全部通道(不可用)*/
      extern void AD9959_enablechannel0(void);		/* 使能通道 0*/
      extern void AD9959_enablechannel1(void);		/* 使能通道 0*/
      extern void AD9959_enablechannel2(void);		/* 使能通道 0*/
      extern void AD9959_enablechannel3(void);		/* 使能通道 0*/
      
      
      /** 正弦波設(shè)置 ********************************************************************************************************************************************************/
      /**********************************************************************************************************************************************************************/
      /* 頻率幅度相位獨(dú)立可調(diào) */
      /* 設(shè)置輸出信號(hào)的 頻率 */
      extern void AD9959_Setwavefrequency(double f);	// 55 kHz - 200 MHz			
      /* 設(shè)置輸出信號(hào)的 頻率和相位 */
      extern void AD9959_Setwavephase(double f,int p);    // 0 - 180 °
      /* 設(shè)置輸出信號(hào)的 頻率和幅度 */
      extern void AD9959_Setwaveamplitute(double f,int a);    // 幅值范圍 0 - 16383   0 - 840 mV
      
      
      /** 二階調(diào)制波設(shè)置 ********************************************************************************************************************************************************/
      /**************************************************************************************************************************************************************************/
      /* 設(shè)置二階調(diào)制波的 兩個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation2(double f1,double f2);		
      /* 設(shè)置二階調(diào)制波的 兩個(gè)信號(hào)頻率和相位 */
      extern void AD9959_SetPhamodulation2(double f,int p1,int p2);	
      /* 設(shè)置二階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM2(double f);		
      
      
      /** 四階調(diào)制波設(shè)置 ********************************************************************************************************************************************************/
      /**************************************************************************************************************************************************************************/
      //-------------------------------------------------------------------
      // CH0/1
      //-------------------------------------------------------------------
      /* 設(shè)置 CH 0/1 四階調(diào)制波的 四個(gè)信號(hào)頻率 */																																																					
      extern void AD9959_SetFremodulation4(double f1,double f2,double f3,double f4);	
      /* 設(shè)置 CH 0/1 四階調(diào)制波的 頻率和四個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation4(double f,int p1,int p2,int p3,int p4); 
      /* 設(shè)置 CH 0/1 四階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM4(double f);           
      //-------------------------------------------------------------------
      // CH3/4
      //-------------------------------------------------------------------
      /* 設(shè)置 CH 3/4 四階調(diào)制波的 四個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation42(double f1,double f2,double f3,double f4);	
      /* 設(shè)置 CH 3/4 四階調(diào)制波的 頻率和四個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation42(double f,int p1,int p2,int p3,int p4);
      /* 設(shè)置 CH 3/4 四階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM42(double f);                                           
      
      
      /** 八階調(diào)制波設(shè)置 ********************************************************************************************************************************************************/
      /**************************************************************************************************************************************************************************/
      //-------------------------------------------------------------------
      // CH0
      //-------------------------------------------------------------------
      /* 設(shè)置 CH0 八階調(diào)制波的 八個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation80(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8);
      /* 設(shè)置 CH0 八階調(diào)制波的 頻率和八個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation80(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8);
      /* 設(shè)置 CH0 八階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM80(double f);
      //-------------------------------------------------------------------
      // CH1
      //-------------------------------------------------------------------
      /* 設(shè)置 CH1 八階調(diào)制波的 八個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation81(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8);
      /* 設(shè)置 CH1 八階調(diào)制波的 頻率和八個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation81(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8);
      /* 設(shè)置 CH1 八階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM81(double f);
      //-------------------------------------------------------------------
      // CH2
      //-------------------------------------------------------------------
      /* 設(shè)置 CH2 八階調(diào)制波的 八個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation82(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8);
      /* 設(shè)置 CH2 八階調(diào)制波的 頻率和八個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation82(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8);
      /* 設(shè)置 CH2 八階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM82(double f);
      //-------------------------------------------------------------------
      // CH 3
      //-------------------------------------------------------------------
      /* 設(shè)置 CH3 八階調(diào)制波的 八個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation83(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8);
      /* 設(shè)置 CH3 八階調(diào)制波的 頻率和八個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation83(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8);
      /* 設(shè)置 CH3 八階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM83(double f);
      
      
      /** 十六階調(diào)制波設(shè)置 *****************************************************************************************************************************************************************************************************/
      /*************************************************************************************************************************************************************************************************************************/
      //-------------------------------------------------------------------
      // CH0
      //-------------------------------------------------------------------
      /* 設(shè)置 CH0 十六階調(diào)制波的 十六個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation160(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8,double f9,double f10,double f11,double f12,double f13,double f14,double f15,double f16);
      /* 設(shè)置 CH0 十六階調(diào)制波的 頻率和十六個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation160(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12,int p13,int p14,int p15,int p16);
      /* 設(shè)置 CH0 十六階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM160(double f);
      
      //-------------------------------------------------------------------
      // CH 1
      //-------------------------------------------------------------------
      /* 設(shè)置 CH1 十六階調(diào)制波的 十六個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation161(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8,double f9,double f10,double f11,double f12,double f13,double f14,double f15,double f16);
      /* 設(shè)置 CH1 十六階調(diào)制波的 頻率和十六個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation161(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12,int p13,int p14,int p15,int p16);
      /* 設(shè)置 CH1 十六階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM161(double f);
      
      //-------------------------------------------------------------------
      // CH 2
      //-------------------------------------------------------------------
      /* 設(shè)置 CH2 十六階調(diào)制波的 十六個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation162(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8,double f9,double f10,double f11,double f12,double f13,double f14,double f15,double f16);
      /* 設(shè)置 CH2 十六階調(diào)制波的 頻率和十六個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation162(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12,int p13,int p14,int p15,int p16);
      /* 設(shè)置 CH2 十六階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM162(double f);
      
      //-------------------------------------------------------------------
      // CH 3
      //-------------------------------------------------------------------
      /* 設(shè)置 CH3 十六階調(diào)制波的 十六個(gè)信號(hào)頻率 */
      extern void AD9959_SetFremodulation163(double f1,double f2,double f3,double f4,double f5,double f6,double f7,double f8,double f9,double f10,double f11,double f12,double f13,double f14,double f15,double f16);
      /* 設(shè)置 CH3 十六階調(diào)制波的 頻率和十六個(gè)信號(hào)的相位 */
      extern void AD9959_SetPhamodulation163(double f,int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12,int p13,int p14,int p15,int p16);
      /* 設(shè)置 CH3 十六階調(diào)制波的 信號(hào)幅度 */
      extern void AD9959_SetAM163(double f);
      
      
      /** 掃頻設(shè)置 ********************************************************************************************************************************************************/
      /********************************************************************************************************************************************************************/
      /* 設(shè)置掃頻的 起始頻率、終止頻率、上升δ、下降δ */
      extern void AD9959_Frequency_Sweep(double f1,double f2,double a1,double a2);
      /* 設(shè)置掃頻的 起始相位、終止相位、上升δ、下降δ */
      extern void AD9959_Phase_Sweep(int p1,int p2,int a1,int a2,double f);	
      /* 設(shè)置掃頻的 終止幅度、上升δ、下降δ、輸出頻率 */
      extern void AD9959_Amplitute_Sweep(int a,int a1,int a2,double f);
      
      #endif	// #if USE_AD9959
      
      #endif	// #ifndef _AD9959_Outset_H
      
      
      

      波形

      最低頻率波形(并非最低)

      可以看到在40kHz的時(shí)候,幅值已經(jīng)明顯衰減

      image

      最高頻率波形

      可以看到在200MHz的時(shí)候,幅值已經(jīng)明顯衰減

      image

      博客導(dǎo)航

      博客導(dǎo)航

      posted @ 2025-07-24 20:05  膝蓋中箭衛(wèi)兵  閱讀(476)  評(píng)論(8)    收藏  舉報(bào)
      ORCID iD icon https://orcid.org/0000-0001-5102-772X
      主站蜘蛛池模板: 狠狠躁夜夜躁人人爽天天5| 国产目拍亚洲精品二区| 一本色道婷婷久久欧美| 毛片av在线尤物一区二区| 国产男女黄视频在线观看| 婷婷丁香五月激情综合 | 国产日韩乱码精品一区二区| 野花社区在线观看视频| 国产中文三级全黄| 色吊丝一区二区中文字幕| 亚洲午夜无码久久久久蜜臀av| 欧洲美熟女乱av在免费| 日韩国产成人精品视频| 天堂亚洲免费视频| 亚洲男人天堂一级黄色片| 欧洲成人在线观看| 色狠狠综合天天综合综合| 国产在线视频www色| 精品女同一区二区三区在线| 国产一区二区波多野结衣| 国产亚洲精品AA片在线播放天| 国产精品亚洲五月天高清| 91超碰在线精品| 日韩人妻一区中文字幕| 97人妻天天摸天天爽天天| 国产农村老熟女国产老熟女| 中文字幕精品人妻丝袜| 中文字幕亚洲国产精品| 成在线人免费视频| 夜色福利站WWW国产在线视频 | 成A人片亚洲日本久久| 伊人成人在线视频免费| 久久精品亚洲精品国产区| 国产精品中文字幕视频| 又大又粗又硬又爽黄毛少妇| 天堂影院一区二区三区四区| 兴仁县| 日韩va中文字幕无码电影| 欧美人禽zozo动人物杂交| 日本偷拍自影像视频久久| www内射国产在线观看|