打印
[MCU]

频率上不去

[复制链接]
591|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
午夜粪车|  楼主 | 2019-11-17 11:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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的正弦波

使用特权

评论回复
5
zhenykun| | 2019-11-17 12:12 | 只看该作者

DA速度太慢了。

使用特权

评论回复
6
wyjie| | 2019-11-17 12:15 | 只看该作者
你需要多大的正弦波?

使用特权

评论回复
7
jlyuan| | 2019-11-17 12:22 | 只看该作者

MSP430F149的ADC才几百K的输出速度。

使用特权

评论回复
8
yszong| | 2019-11-17 12:25 | 只看该作者

使用外部的高度DAC。

使用特权

评论回复
9
dengdc| | 2019-11-17 12:28 | 只看该作者
正常都是需要2倍采样频率输出才行。

使用特权

评论回复
10
heweibig| | 2019-11-17 12:31 | 只看该作者
楼主的输出速度太慢了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝