亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ad9854.c

?? 430 iar F1612對(duì) AD9854的操作
?? C
字號(hào):
#ifndef uchar
  #define uchar unsigned char
  #endif

//#define msp430 FQ439
#define msp430 F16

//#define parameter parrel
#define parameter seri

#define seri 1
#define parrel 0

#define FQ439  1
#define F16    0

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define bool char
#define true 1
#define false 0

#define SINGLETONE 0
#define FSK 1
#define RAMPEDFSK 2
#define CHIRP 3
#define BPSK 4

#if( msp430 == 1 )
#include  <msp430x43x.h>
#endif
#if( msp430 == 0 )
#include  <msp430x16x.h>
#endif

//////////////////////////////////////
/*
定義引腳
*/

#define MRESET P2DIR |= BIT0
#define RESETHIGH P2OUT |= BIT0
#define RESETLOW P2OUT &= ~BIT0

#define SHAPEKEYING P3DIR |= BIT6
#define SHAPEKEYINGHIGH P3OUT |= BIT6
#define SHAPEKEYINGLOW P3OUT &= ~BIT6

#define FBH P3DIR |= BIT4
#define FBHHIGH P3OUT |= BIT4
#define FBHLOW P3OUT &= ~BIT4

#define UPDATE P3DIR |= BIT0
#define UPDATEHIGH P3OUT |= BIT0
#define UPDATELOW P3OUT &= ~BIT0


////// P2.7 ~ P2.2 ADDR 
////// P2.1 -- > RD
////// P2.0 -- > MASTER_RESET
////// P1 --- > DATA
/////  
#if( parameter == 0 )  // parrel 

#define DOUT P1DIR |= 0xff
#define DIN  P1DIR &= ~0xff
#define DATAOUT P1OUT
#define DATAIN P1IN

#define SADDR P2DIR |= 0xfc
#define ADDR P2OUT

#define RD P2DIR |= BIT1
#define RDHIGH P2OUT |= BIT1
#define RDLOW P2OUT &= ~BIT1

#define WR P3DIR |= BIT2
#define WRHIGH P3OUT |= BIT2
#define WRLOW P3OUT &= ~BIT2

#endif

#if( parameter == 1 )   // mode = 1 serries mode

//-------------IO PRESET--------------//
// P2.0- UD_CLK;     P2.1(SIMO)- SDIO;
// P2.2(SOMI)-SDO;   P2.3- UCLK;
// P2.4- /CS;        P2.5- SHAPED KEY;
// P2.6- IO RST;     P2.7- RST;
//------------------------------------//

#define HADEINIT P2OUT = 0xff;P2DIR = 0xff;P3OUT=0xff;P3DIR=0xFe

#define IORESET P2DIR |= BIT4
#define IORESETHIGH P2OUT |= BIT4
#define IORESETLOW P2OUT &= ~BIT4

#define SDO P2DIR |= BIT3
#define SDOHIGH P2OUT |= BIT3
#define SDOLOW P2OUT &= ~BIT3

#define SDIO P2DIR |= BIT2
#define SDIOHIGH P2OUT |= BIT2
#define SDIOLOW P2OUT &= ~BIT2

#define SCLK P3DIR |= BIT2
#define SCLKHIGH P3OUT |= BIT2
#define SCLKLOW P3OUT &= ~BIT2

#define CSB P2DIR |= BIT1
#define CSBHIGH P2OUT |= BIT1
#define CSBLOW P2OUT &= ~BIT1

#define SDIO_IN   P2DIR&=~BIT2  //數(shù)據(jù)線選擇輸入
#define SDIO_OUT  P2DIR|=BIT2   //數(shù)據(jù)線選擇輸出
#define SDIO_DATA P2IN&BIT2     //數(shù)據(jù)線上的輸入數(shù)據(jù)

#define ORAMP_H  P3OUT |= BIT7
#define ORAMP_L  P3OUT &= ~BIT7

#define IOSYNC_H  P2OUT|=BIT4   //i/o操作同步,為高時(shí)當(dāng)前I/O操作立即結(jié)束
#define IOSYNC_L  P2OUT&=~BIT4


#endif
/////////////////////////////////////
/*
公用函數(shù)  delay_9854 ( uint ) MRST() IOUpdata()
*/
void delay_9854(uint time)
{
    uint i;
    for(i = 0; i < time; i++)
    {
        _NOP();
        _NOP();
        _NOP();
        _NOP();
    }
}

void MRST(void)
{
   RESETHIGH;
   delay_9854(5000);
   RESETLOW;
}

void IOUpdate(void)
{
    UPDATELOW;
    delay_9854(5);
    UPDATEHIGH;
    delay_9854(5);
    UPDATELOW;
}

#if( parameter == 0 )  // parrel
uint systemclk;

void ParallelSendByte(uchar addr, uchar data)
{
    DOUT;
    WRHIGH;
    ADDR = (addr & 0x3f);
    WRLOW;
    DATAOUT = data;
    WRHIGH;
}

uchar ParallelReadByte(uchar addr)
{
    uchar result;
    DIN;
    RDHIGH;
    ADDR = (addr & 0x3f);
    RDLOW;
    result = DATAIN;
    RDHIGH;
    return result;
}

void ParallelSetReg(uchar saddr, uchar *data, uchar n)
{
    uchar i;
    for(i = 0; i < n; i++)
    {
        ParallelSendByte(saddr + i, *data);
        data++;
    }
    IOUpdate();
}

void ParallelSetPhase(uchar saddr, float phase)
{
    uchar temp[2];
    uchar ph;
    
    ph = (uint) (phase * 45.51111111);
    ph = ph & 0x3fff;
    temp[0] = ph / 256;
    temp[1] = ph % 256;
    ParallelSetReg(saddr, temp, 2);
}

void ParallelSetPhase1(float phase)
{
    ParallelSetPhase(0, phase);
}

void ParallelSetPhase2(float phase)
{
    ParallelSetPhase(2, phase);
}

void ParallelSetFreq(uchar saddr, double freq)
{
    double ftw1;
    double t;
    uchar i;
    uchar temp[6];
    ftw1 = (freq * 281474976.710656 / (double) systemclk);
    t = (double)  (1099511627776);
    for(i = 0; i < 6; i++)
    {
        temp[i] = (uchar) (ftw1 / t);
        ftw1 = ftw1 - temp[i] * t;
        t = t / 256.0;
    }
    ParallelSetReg(saddr, temp, 6);
}

void ParallelSetFTW1(double freq)
{
    ParallelSetFreq(4, freq);
}

void ParallelSetFTW2(double freq)
{
    ParallelSetFreq(0x0a, freq);
}

void ParallelSetDFW(double freq)
{
    ParallelSetFreq(0x10, freq);
}

void ParallelSetUDClk(ulong clk)
{
    uchar temp[4];
    long t;
    uchar i;
    t = 16777216;
    for (i = 0; i < 4; i++)
    {
        temp[i] = clk / t;
        clk = clk % t;
        t =  t >> 8;
    }
    ParallelSetReg(0x16, temp, 4);
}

void ParallelSetRRClk(ulong clk)
{
    uchar temp[3];
    long t;
    uchar i;
    t = 65536;
    for (i = 0; i < 3; i++)
    {
        temp[i] = clk / t;
        clk = clk % t;
        t = t >> 8;
    }
    ParallelSetReg(0x1a, temp, 3);
}

void ParallelSetOutShapeKey(uchar saddr, uint amplitude)
{
    uchar temp[2];
    temp[0] = amplitude / 256;
    temp[1] = amplitude % 256;
    ParallelSetReg(saddr, temp, 2);
}

void ParallelSetOSKI(uint amplitude)
{
    ParallelSetOutShapeKey(0x21, amplitude);
}

void ParallelSetOSKQ(uint amplitude)
{
    ParallelSetOutShapeKey(0x23, amplitude);
}

void ParallelSetOSKRAMPRATE(uchar rate)
{
    ParallelSetReg(0x25, &rate,1);
}

void ParallelSetQDAC(uint data)
{
   uchar temp[2];
   temp[0] = data / 256;
   temp[1] = data % 256;
   ParallelSetReg(0x26, temp, 2);
}

void ParallelPowerDown(bool flag)
{
    uchar data;
    if (flag == true)
        data = 0x17;
    else
        data = 0x00;
   ParallelSetReg(0x1d, &data, 1);
}

void ParallelSetRefClk(uchar times)
{
    uchar data;
    if(times >=  4)
    {
        data = 0x20;
        if (times >= 10)
            data |= 0x40;
        data |= times;
        systemclk = systemclk * times;
        ParallelSetReg(0x1e, &data, 1);
    }
}

void ParallelSetMode(bool triangle, bool qdac, uchar mode)
{
    uchar data;
    data = (mode << 1);
    if (triangle == true)
        data |= 0x20;
    if (qdac == true)
        data |= 0x10;
    ParallelSetReg(0x1f, &data, 1);
}

void ParallelSetOSK(bool bypass, bool osken, bool oskint)
{
    uchar data;
    data = 0;
    if (bypass == true)
        data |= 0x40;
    if (osken == true)
        data |= 0x20;
    if (oskint == true)
        data |= 0x10;
    ParallelSetReg(0x20, &data, 1);
}

void Init9854(void)
{
    DOUT;
    SADDR;
    RD;
    WR;
    MRESET;
    SHAPEKEYING;
    FBH;
    UPDATE;
    MRST();
    SHAPEKEYINGLOW;
    FBHLOW;
    WRHIGH;
    RDHIGH;
    systemclk = 20;
    ParallelPowerDown(false);
    ParallelSetRefClk(4);
    ParallelSetMode(false, false, SINGLETONE);
    ParallelSetOSK(false, false, false);
}

void SingleTone(float freq, ulong amplitude)
{
    ParallelSetMode(false, false, SINGLETONE);
    ParallelSetFTW1(freq);
    ParallelSetOSKI(amplitude);
    ParallelSetOSKQ(amplitude);
}

void UnrampedFSK(float freq1, float freq2)
{
    ParallelSetMode(false, false, FSK);
    ParallelSetFTW1(freq1);
    ParallelSetFTW2(freq2);
}

void RampedFSK(bool triangle, float freq1, float freq2, float rampedfreq, ulong rrclk)
{
    ParallelSetMode(triangle, false, RAMPEDFSK);
    ParallelSetFTW1(freq1);
    ParallelSetFTW2(freq2);    
    ParallelSetDFW(rampedfreq);
    ParallelSetRRClk(rrclk);
}

void PSK(float freq, float phase1, float phase2)
{
    ParallelSetMode(false, false, BPSK);
    ParallelSetFTW1(freq);
    ParallelSetPhase1(phase1);
    ParallelSetPhase2(phase2);
}

void AM(void)
{
}

#endif

//char CTRL_REG[]={0x10,0x64,0x00,0x00};  
char CTRL_REG[]={0x00,0x6f,0x01,0x20};
#if ( parameter == 1 )

void CS( void )
{ 
  CSBHIGH;
  delay_9854(20);
  CSBLOW;
}

void BreakOperation( void )//中斷一次I/O操作
{
 IORESETHIGH;
 delay_9854(20);
 IORESETLOW;
}

void SPISendByte(uchar data) //發(fā)送一個(gè)字節(jié)數(shù)據(jù)
{
 uchar databuffer[9],i;
 SDIO_OUT;
 /******以下一段用來得到每次發(fā)送一位時(shí)的應(yīng)發(fā)送的數(shù)據(jù)************************/
 for(i=8;i>0;i--)
   {
    if(data%2)
        {databuffer[i]=4;}
    else
        databuffer[i]=0;
    data = data>>1;
   }
 SCLKHIGH;
 for(i=1;i<9;i++)
  {
   SCLKLOW;
   if(databuffer[i])
       SDIOHIGH;
   else
       SDIOLOW;
   delay_9854(1);
   SCLKHIGH;
   delay_9854(1);
  }
  SCLKLOW;
}

uchar SPIRecieveByte( void ) //接收一個(gè)字節(jié)數(shù)據(jù)
{
 uchar databuffer,i;
 SDIO_IN;
 databuffer=0;
 for(i=1;i<9;i++)
  {
   databuffer=databuffer<<1;
   SCLKLOW;
   SCLKHIGH;
   if(SDIO_DATA)
      databuffer+=1;
  }
  SCLKLOW;
  delay_9854 ( 10 );
  return databuffer;
}

void Init9854 ( void )
{
   uchar k;
   HADEINIT;
   BreakOperation( );     
   MRST( );
   CS( );
   
   SPISendByte( 0x07 );                   // set Control Register addr.
   for( k = 0; k < 4; k++ )
   { 
     SPISendByte( CTRL_REG[k] );         // set Control Register
   }
   
   //IOUpdate( );
   delay_9854 ( 5000 );
}

#endif

#if( msp430 == 1 )
void InitSystemClock(void)  // 初始化系統(tǒng)時(shí)鐘
{
  WDTCTL = WDTPW + WDTHOLD;              // Stop watchdog timer
  SCFI0 |= FN_4;
  SCFQCTL = 121;                        // 7.99MHz 120 * 32.768k
  FLL_CTL0 = DCOPLUS + OSCCAP1;
  P1DIR = 0x22;
  P1SEL = 0x22;
}
#endif

#if( msp430 == 0 )
void InitSystemClock(void)  // 初始化系統(tǒng)時(shí)鐘
{
  unsigned char i;
  WDTCTL=WDTPW+WDTHOLD;//關(guān)閉看門狗
  BCSCTL1 &= ~XT2OFF;                   // XT2on
  do 
  {
  IFG1 &= ~OFIFG;                       // Clear OSCFault flag
  for (i = 0xFF; i > 0; i--);           // Time for flag to set
  }
  while ((IFG1 & OFIFG));               // OSCFault flag still set?                

  BCSCTL2 |= SELM_2 + SELS; 
}
#endif
#if( parameter == 0 )
void main( void )
{
   uchar k,temp,readword;
   InitSystemClock ( );
   
   Init9854 ( );   
   MRST( );   
   Init9854 ( );
   SingleTone ( 200000, 0xFFF );
   temp = 0x1d;
   for ( k = 4; k; k-- )
   {
     readword = ParallelReadByte ( temp ++ );
   }    
    LPM0;
}  
#endif

#if( parameter == 1 )
void main( void )
{
   uchar k,temp;
   InitSystemClock ( );
   
   Init9854 ( );   
   MRST( );   
   while ( 1 )
   SPISendByte( 0xff );
   //it9854 ( );
   
   SPISendByte(0x02);                        // set Frequency 1 addr.
   SPISendByte(0x03);                        // set Frequency 1 NO.
   for(k=0;k<5;k++)
   { 
      SPISendByte(0x33);                      // set Frequency 1 NO.
   }  
    //IOUpdate( );
    delay_9854 ( 5000 );
    
    SPISendByte( 0x87 );
    for(k=0;k<4;k++)
    {
       temp = SPIRecieveByte( ); 
    }
    
    SPISendByte(0x82);                        // set Frequency 1 addr.
    
    for(k=0;k<6;k++)
   { 
      temp = SPIRecieveByte( );                // set Frequency 1 NO.
   }
    
    LPM0;
}
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线不卡视频| 欧美岛国在线观看| 粉嫩嫩av羞羞动漫久久久 | 99久久综合国产精品| 国产精品资源站在线| 国产真实精品久久二三区| 蓝色福利精品导航| 国产一区二区不卡在线 | 欧美电影免费观看高清完整版在线观看| 欧美优质美女网站| 欧美综合视频在线观看| 欧美日韩成人激情| 欧美一区二区三区影视| 日韩精品中文字幕在线一区| 精品少妇一区二区三区日产乱码| 久久综合色鬼综合色| 国产偷国产偷亚洲高清人白洁| 国产欧美一区二区三区鸳鸯浴 | 欧美日韩一区 二区 三区 久久精品| 欧美视频一区二区三区| 6080午夜不卡| 久久精品免视看| 亚洲欧洲一区二区在线播放| 一区二区高清免费观看影视大全| 一区二区免费在线| 日日摸夜夜添夜夜添国产精品| 日本aⅴ亚洲精品中文乱码| 老司机精品视频在线| 成人精品小蝌蚪| 在线日韩国产精品| 日韩欧美美女一区二区三区| 国产精品久久久久久久久晋中 | 99久久综合色| 91精品国产高清一区二区三区蜜臀| 精品少妇一区二区| 亚洲人成精品久久久久| 日本不卡123| 99国产精品久久久久久久久久 | 国内外精品视频| av高清久久久| 久久综合视频网| 亚洲一区成人在线| 国产suv一区二区三区88区| 日本韩国精品在线| 国产日韩欧美a| 首页国产丝袜综合| 9l国产精品久久久久麻豆| 欧美丰满美乳xxx高潮www| 国产欧美精品区一区二区三区| 亚洲成人av一区二区| 成人精品国产福利| 精品美女在线播放| 天堂蜜桃一区二区三区| 99久久久精品免费观看国产蜜| 日韩美一区二区三区| 亚洲午夜日本在线观看| 波波电影院一区二区三区| 欧美成人精品1314www| 亚洲国产日韩a在线播放| 成人h精品动漫一区二区三区| 欧美成人三级在线| 日本vs亚洲vs韩国一区三区二区| 欧美在线免费视屏| 亚洲欧洲成人av每日更新| 国产成人精品综合在线观看 | 91亚洲精品久久久蜜桃网站| 日韩欧美亚洲国产精品字幕久久久| 亚洲卡通动漫在线| 成人av一区二区三区| 久久蜜臀精品av| 精品一区二区三区免费观看| 欧美一区二区三区喷汁尤物| 亚洲小少妇裸体bbw| 在线观看日韩电影| 一级特黄大欧美久久久| 色婷婷综合视频在线观看| 成人欧美一区二区三区小说| 成人理论电影网| 中文字幕欧美一区| 91麻豆视频网站| 樱桃视频在线观看一区| 91福利视频在线| 亚洲网友自拍偷拍| 欧美精品v日韩精品v韩国精品v| 亚洲va欧美va人人爽| 欧美久久久久久蜜桃| 奇米四色…亚洲| 精品国产一二三| 国产麻豆精品一区二区| 日本一区二区三区电影| 成人永久aaa| 一区二区三区日韩精品| 69堂精品视频| 国产成人综合视频| 一区在线播放视频| 欧美揉bbbbb揉bbbbb| 婷婷开心久久网| 久久午夜电影网| av在线一区二区| 五月天视频一区| 国产亚洲欧洲一区高清在线观看| av在线不卡网| 男人的天堂久久精品| 国产亚洲欧美一区在线观看| 色欲综合视频天天天| 日韩精品视频网| 中文字幕av不卡| 欧美日韩国产另类不卡| 国产精品一卡二卡| 一区二区三区久久久| 欧美成人vr18sexvr| 成人av中文字幕| 日韩国产一区二| 亚洲欧洲精品一区二区三区不卡| 欧美日韩亚洲综合一区二区三区 | 99在线热播精品免费| 日韩精品免费专区| 国产精品美女视频| 欧美日韩大陆一区二区| 成人av在线资源网站| 日本三级韩国三级欧美三级| 中文字幕一区二区三区四区| 日韩一二在线观看| 91国偷自产一区二区三区成为亚洲经典 | 欧美视频在线一区二区三区| 黑人巨大精品欧美黑白配亚洲 | 欧美在线一区二区| 国产成人av福利| 日本人妖一区二区| 亚洲精品伦理在线| 国产精品天干天干在线综合| 日韩无一区二区| 欧美色倩网站大全免费| av亚洲精华国产精华精| 国产一区二区精品在线观看| 亚洲成av人片一区二区梦乃| 亚洲丝袜另类动漫二区| 国产日本欧洲亚洲| 精品国产一区二区三区不卡| 欧美一区日韩一区| 欧美三级三级三级| 在线观看日韩一区| 97国产一区二区| 99re这里只有精品首页| 粉嫩绯色av一区二区在线观看 | 亚洲人午夜精品天堂一二香蕉| 久久精品男人天堂av| 久久伊人蜜桃av一区二区| 欧美mv日韩mv亚洲| 日韩视频国产视频| 日韩视频一区二区三区在线播放| 欧美精品久久99| 欧美人xxxx| 欧美日韩1区2区| 欧美理论片在线| 日韩一区二区三区视频| 欧美一区二区三区免费| 欧美一区二区三区婷婷月色| 欧美日韩精品系列| 91精品国产综合久久精品图片| 欧美影院一区二区| 欧美中文字幕一区二区三区亚洲| 欧美自拍偷拍一区| 亚洲国产成人一区二区三区| 久久精品视频免费观看| 中文字幕乱码亚洲精品一区| 中文幕一区二区三区久久蜜桃| 国产精品国模大尺度视频| 亚洲欧美日韩系列| 爽好多水快深点欧美视频| 另类小说色综合网站| 国产成人激情av| 91网址在线看| 91精品久久久久久蜜臀| 久久久精品蜜桃| 中文字幕综合网| 日韩在线一二三区| 国产福利一区在线| 在线看国产一区| 26uuu另类欧美| 亚洲青青青在线视频| 天天av天天翘天天综合网| 狠狠久久亚洲欧美| 91一区二区三区在线观看| 欧美人伦禁忌dvd放荡欲情| 久久久久国产一区二区三区四区| 亚洲欧洲在线观看av| 午夜精品久久久久久久久| 国产一区二区精品在线观看| 色哦色哦哦色天天综合| 欧美一二三四区在线| 综合激情成人伊人| 麻豆精品蜜桃视频网站| 北岛玲一区二区三区四区| 7777精品伊人久久久大香线蕉经典版下载| 日韩精品一区在线观看| 亚洲愉拍自拍另类高清精品| 精品无码三级在线观看视频| 91久久精品网| 亚洲国产精品成人综合|