[MCU] 频率上不去

[复制链接]
819|9
 楼主| 午夜粪车 发表于 2019-11-17 11:56 | 显示全部楼层 |阅读模式
149 用DA转换模块输出正弦波,为什么频率上不去
zhaoxqi 发表于 2019-11-17 12:00 | 显示全部楼层
程序看看
 楼主| 午夜粪车 发表于 2019-11-17 12:03 | 显示全部楼层

void main(void)
  {
      
    WDTCTL=WDTPW+WDTHOLD;// 禁止看门狗定时器
  // 设置系统时钟,使用外接晶振 :8MHz,使单片机的时钟源设为 XT2//
   BCSCTL1 &=~XT2OFF;//首先打开外部晶体振荡器。也就是XT2OFF清零。
  do
  { IFG1 &=~OFIFG;//清除晶体振荡器失效标志OFIFG
  for(i=0xFF;i>0;i--);  //等待50us等待晶体振荡器正常工作
  }
  while((IFG1 & OFIFG)!=0);//等OFIFG等于0的时候结束,说明晶体振荡器正常工作了
   BCSCTL2=SELM_2+SELS;                 //选择MCLK、SMCLK为XT2
  //初始化端口//
     P6DIR |= BIT26OUT |= BIT2;  //关闭电平转换
   
    Set_IO();                   //设置IIC端口
   P1DIR|=BIT0+BIT1;
  //设置Timer_a//
  TACTL =TASSEL1+TACLR;// 选择SMLK为时钟,定时器清除
  //TACTL |=TASSEL1+TACLR;// 选择SMLK为时钟,定时器清除
  CCTL0=CCIE;
  TACCR0=32;
  _EINT(); //中断允许
  TACTL |=MC0;//选择up,16位模式
   }
     //Timer_A中断服务子程序
     #pragma vector=TIMERA0_VECTOR
     __interrupt void Timer_A(void)
{
         
          SampleTimes=(SampleTimes+1)%100;
          DAC_Val=SinTable[SampleTimes];     

          Write_DAC(DAC_Val);            //写入DAC   
           

}
dengdc 发表于 2019-11-17 12:08 | 显示全部楼层
这是我的主函数,想产生1000HZ的正弦波
zhenykun 发表于 2019-11-17 12:12 | 显示全部楼层

DA速度太慢了。
wyjie 发表于 2019-11-17 12:15 | 显示全部楼层
你需要多大的正弦波?
jlyuan 发表于 2019-11-17 12:22 | 显示全部楼层

MSP430F149的ADC才几百K的输出速度。
yszong 发表于 2019-11-17 12:25 | 显示全部楼层

使用外部的高度DAC。
dengdc 发表于 2019-11-17 12:28 | 显示全部楼层
正常都是需要2倍采样频率输出才行。
heweibig 发表于 2019-11-17 12:31 | 显示全部楼层
楼主的输出速度太慢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部