欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6629|回復: 1
收起左側

MSP430單片機片內12位DA產生正弦波C語言程序

[復制鏈接]
ID:51337 發表于 2013-7-14 16:16 | 顯示全部樓層 |閱讀模式
  1. #include  <msp430x16x.h>
  2. //------------------------------------------------------------------------------
  3. // 12-bit Sine Lookup table with 32 steps
  4. //------------------------------------------------------------------------------
  5. static int Sin_tab[32] = { 0x7FF,0xA78,0xCB2,0xE77,0xF9A,0xFFE,0xF9A,0xE77,0xCB2,0xA78,0x7FF,0x586,0x34C,0x187,0x064,0x000
  6. ,0x064,0x187,0x34C,0x586};
  7. static int Cos_tab[32] = { 0xFFE,0xF9A,0xE77,0xCB2,0xA78,0x7FF,0x586,0x34C,0x187,0x064,0x000
  8. ,0x064,0x187,0x34C,0x586,0x7FF,0xA78,0xCB2,0xE77,0xF9A};

  9. void main(void)
  10. {
  11.   volatile unsigned int i;
  12.   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  13.    //==========================選擇高頻振蕩器=======================================
  14.   BCSCTL1 &= ~XT2OFF;                       // XT2= HF XTAL
  15.    do
  16.   {
  17.   IFG1 &= ~OFIFG;                           // Clear OSCFault flag
  18.   for (i = 0xFF; i > 0; i--);               // Time for flag to set
  19.   }
  20.   while ((IFG1 & OFIFG)); //查看8M的震蕩是否穩定  // OSCFault flag still set?
  21.   BCSCTL2 |= SELM_2 + SELS; //MCLK和SMCLK選擇XT2// MCLK= SMCLK= XT2 (safe)
  22.   //================================================================================
  23.   ADC12CTL0 = REF2_5V + REFON;//內部基準電壓      // Internal 2.5V ref
  24.   //================================================================================
  25.   DMACTL0 = DMA0TSEL_5 + DMA1TSEL_5;        // DAC12IFG trigger觸發器
  26.   DMA0SA = (int) Sin_tab;//首地址           // Source block address
  27.   DMA0DA = (int)&DAC12_0DAT; //目的地址     // Destination single address
  28.   DMA0SZ = 0x14;       //長度               // Block size
  29.   DMA0CTL = DMADT_4 + DMASRCINCR_3 + DMAEN; // Rpt, inc src, word-word

  30.   DMA1SA = (int) Cos_tab;  //首地址          // Source block address
  31.   DMA1DA = (int)&DAC12_1DAT; //目的地址      // Destination single address
  32.   DMA1SZ = 0x14;       //長度                // Block size
  33.   DMA1CTL = DMADT_4 + DMASRCINCR_3 + DMAEN;  // Rpt, inc src, word-word

  34.   DAC12_0CTL = DAC12LSEL_2 + DAC12IR + DAC12AMP_5 + DAC12IFG + DAC12ENC + DAC12GRP;
  35.   DAC12_1CTL = DAC12LSEL_2 + DAC12IR + DAC12AMP_5 + DAC12IFG + DAC12ENC;

  36.   CCTL1 = OUTMOD_3;//置位復位模式           // CCR1 set/reset
  37.   CCR1 = 1;    //設置占空比                 // CCR1 PWM Duty Cycle
  38.   CCR0 = 1; //設置周期                     // Clock period of CCR0
  39.   TACTL = TASSEL_2 + MC_1; //定時器A的時鐘源為SMCLK=8M,增計數模式 // SMCLK, upmode

  40.   _BIS_SR(CPUOFF);                          // CPU off
  41. }
復制代碼
回復

使用道具 舉報

ID:53173 發表于 2013-8-17 22:00 | 顯示全部樓層
這個從哪個管腳輸出正弦波
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表