⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dds.c

📁 用MSP430实现的DDS扫频程序,区别于一般的dds产生程序
💻 C
字号:
#include <msp430x14x.h>

unsigned int div=10;                        // 输出频率公式为:f = MCLK / div
                                            // 占空比为:(div / 2) / div = 50%
void main(void)
{
  unsigned int i;
  WDTCTL = WDTPW + WDTHOLD;
  BCSCTL1 &= ~XT2OFF;                       // XT2有效
  
  do
  {
    IFG1 &= ~OFIFG;
    for(i = 0xff; i > 0 ; i--) ;
  }
  while ((IFG1 & OFIFG) != 0) ;            // 等待XT2启动
  
  BCSCTL2 |= SELM_2;                       // MCLK = XT2 = 8MHz
  TACTL = TASSEL_2 + TACLR;
  CCR0 = div;
  CCTL0 |= OUTMOD_7 + CCIE;
  CCR1 = div / 2;
  CCTL1 |= OUTMOD_7;
  P1DIR |= 0X04;                           // P1.2输出
  P1SEL |= 0X04;                           // P1.2为TA1输出
  TACTL |= MC_1;                           // 递增模式
  _EINT();
  while(1);
}

#pragma vector = TIMERA0_VECTOR
__interrupt void TIMERA0_ISR(void)
{
  if (div == 2) div = 10;
  else CCR0 = (--div);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -