?? 9954s.c
字號:
#include<9954.h>
#include<aduc841.h>
#include<math.h>
#define IO_SS P3_2
#define A1k 13427
void SPI_Write(unsigned char sdata);
void ddsSetCFR1 (unsigned long int idata cfr1) // Set Control Function Register 1-------------
{
unsigned long idata tmp1,tmp2,tmp3;
tmp1=cfr1>>8;
tmp2=tmp1>>8;
tmp3=tmp2>>8;
IO_SS=0;
SPI_Write (AD9954_CFR1);
SPI_Write ((unsigned char)(tmp3));
SPI_Write ((unsigned char)(tmp2));
SPI_Write ((unsigned char)(tmp1));
SPI_Write ((unsigned char)cfr1);
IO_SS=1;
}
void ddsSetCFR2 (unsigned long int idata cfr2) // Set Control Function Register 2-------------
{
unsigned long idata tmp1,tmp2;
tmp1=cfr2>>8;
tmp2=tmp1>>8;
IO_SS=0;
SPI_Write (AD9954_CFR2);
SPI_Write ((unsigned char)(tmp2));
SPI_Write ((unsigned char)(tmp1));
SPI_Write ((unsigned char)cfr2);
IO_SS=1;
}
void ddsSetASF (unsigned int idata asf) // Set DDS Amplitude Scale Factor--------------
{
IO_SS=0;
SPI_Write (AD9954_ASF);
SPI_Write ((asf >> 8) & 0xff);
SPI_Write (asf & 0xff);
IO_SS=1;
}
/*
void ddsSetARR (unsigned char idata arr) // Set DDS Amplitude Ramp Rate-----------------
{
IO_SS=0;
SPI_Write (AD9954_ARR);
SPI_Write ((arr >> 8) & 0xff);
SPI_Write (arr & 0xff);
IO_SS=1;
}
*/
void ddsSetFTW0 (unsigned long int idata ftw) // Set DDS frequency tuning word---------------
{
unsigned long idata tmp1,tmp2,tmp3;
tmp1=ftw>>8;
tmp2=tmp1>>8;
tmp3=tmp2>>8;
IO_SS=0;
SPI_Write (AD9954_FTW0);
SPI_Write ((unsigned char)(tmp3));
SPI_Write ((unsigned char)(tmp2));
SPI_Write ((unsigned char)(tmp1));
SPI_Write ((unsigned char)ftw);
IO_SS=1;
}
void ddsSetFTW1 (unsigned long int idata ftw) // Set DDS frequency tuning word---------------
{
unsigned long idata tmp1,tmp2,tmp3;
tmp1=ftw>>8;
tmp2=tmp1>>8;
tmp3=tmp2>>8;
IO_SS=0;
SPI_Write (AD9954_FTW1);
SPI_Write ((unsigned char)(tmp3));
SPI_Write ((unsigned char)(tmp2));
SPI_Write ((unsigned char)(tmp1));
SPI_Write ((unsigned char)ftw);
IO_SS=1;
}
/*
void ddsSetPOW (unsigned int idata pow) // Set the output phase------------------------
{
IO_SS=0;
SPI_Write (AD9954_POW);
SPI_Write ((unsigned char)(pow >> 8));
SPI_Write ((unsigned char)pow);
IO_SS=1;
}
void ddsPD()
{
SPI_Write(0xff,0);
SPI_Write(0xfe,1);
}
*/
void ddsSetSwpN(unsigned long idata delta,unsigned char idata rate)
{
unsigned long idata tmp1,tmp2,tmp3;
tmp1=delta>>8;
tmp2=tmp1>>8;
tmp3=tmp2>>8;
IO_SS=0;
SPI_Write (AD9954_NLSCW);
SPI_Write ((unsigned char)rate);
SPI_Write ((unsigned char)(tmp3));
SPI_Write ((unsigned char)(tmp2));
SPI_Write ((unsigned char)(tmp1));
SPI_Write ((unsigned char)delta);
IO_SS=1;
}
void ddsSetSwpP(unsigned long idata delta,unsigned char idata rate)
{
unsigned long idata tmp1,tmp2,tmp3;
tmp1=delta>>8;
tmp2=tmp1>>8;
tmp3=tmp2>>8;
IO_SS=0;
SPI_Write (AD9954_PLSCW);
SPI_Write ((unsigned char)rate);
SPI_Write ((unsigned char)(tmp3));
SPI_Write ((unsigned char)(tmp2));
SPI_Write ((unsigned char)(tmp1));
SPI_Write ((unsigned char)delta);
IO_SS=1;
}
/*
void FM(unsigned int mfrq,unsigned char band,unsigned long fc)
{
unsigned int idata temp;
unsigned int idata Rrr=8000000/1024/mfrq;
unsigned char idata send[5];
P3_4=0;
send[4]=(unsigned char)Rrr;
send[3]=(unsigned char)Rrr/256;
send[2]=0xff;
send[1]=0x03;
send[0]=0x70;
ddsSetCFR1(0x82000000);
ddsSetRAMS(send);
IO_SS=0;
SPI_Write(0x0b);
for(temp=0;temp<1024;temp++)
{
ddsSetRAM(fc+A1k*band*sin(temp*0.006135923));
}
IO_SS=1;
}
*/
void DDS_Ini(void) // Initialize the DDS
{
ddsSetCFR1(0x02000042);
ddsSetCFR2(0x00000026);
ddsSetFTW0(0x10000000);
/*
ddsSetCFR1(0x02000082,1);
ddsSetCFR2(0x00000026,1);
ddsSetFTW0(0x10000000,1);
*/
ddsSetASF(0xffff);
//ddsSetASF(0xffff,1);
}
void initUart(void)
{
SPICON=0x3a;
//SCON=0xd0;
//T3CON=0x84;
//T3FD=0x07;
}
void SPI_Write(unsigned char sdata)
{
SPIDAT=sdata;
while(!ISPI);
ISPI=0;
}
/*
void sendUart(unsigned char idata sdata,bit cmd)
{
if(cmd==1)
{
TB8=1;
SBUF=sdata;
TB8=0;
while(TI==0);
TI=0;
}
else
{
SBUF=sdata;
while(TI==0);
TI=0;
}
}
void ddsSetRAM (unsigned long int ram) // Set DDS frequency tuning word---------------
{
unsigned long tmp1,tmp2,tmp3;
tmp1=ram/256;
tmp2=tmp1/256;
tmp3=tmp2/256;
SPI_Write ((unsigned char)(tmp3));
SPI_Write ((unsigned char)(tmp2));
SPI_Write ((unsigned char)(tmp1));
SPI_Write ((unsigned char)ram );
}
void ddsSetRAMS(unsigned char ram[])
{
IO_SS=0;
SPI_Write (0x07);
SPI_Write (ram[4]);
SPI_Write (ram[3]);
SPI_Write (ram[2]);
SPI_Write (ram[1]);
SPI_Write (ram[0]);
IO_SS=1;
}
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -