msp430f5438测频率成功,能测60K一下频率,误差50HZ以内!

2019-03-24 15:49发布

#include <msp430x54x.h>
#include "LCD_12864.h"
#include "CLOCK.h"
unsigned int end,start;
unsigned char overflow;
unsigned long fre;
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  InitSysCLKXT2(); //8M SMCLK,MCLK为8M,ACLK为32768
  INI_LCD();
  P2SEL|=BIT2;
  TA1CTL|=TAIE+TASSEL__SMCLK+TACLR+ MC__CONTINOUS;//选择计时器时钟为SMCLK打 分频比为1 UP增模式
  TA1CCTL1|=CCIE+CAP+CM0+SCS;//打开中断 打开捕获 上升沿捕获 同步捕获
  _EINT();
  while(1)
  {
    __bis_SR_register(LPM0+GIE);
    TA1CCTL1&=~CAP;
    fre=8000000/(2*(end+overflow*65536-start));
    write_cmd(0x01);
    write_cmd(0x80);
    displayshu(fre);
    __delay_cycles(800000);
    TA1CCTL1|=CAP;
  }
}
#pragma vector=TIMER1_A1_VECTOR
__interrupt void TIMER1_A1_ISR(void)
{
  switch(__even_in_range(TA1IV,14))
  {
    case  0: break;                          // No interrupt
    case  2:                                 // Add Offset to CCR1
      {  
        if(TA1CCTL1&CM0)
        {  
          TA1CCTL1=(TA1CCTL1&(~CM0))|CM1; //改为下降沿触发
          //TA1CTL|=TACLR;
          start=TA1CCR1;
          overflow=0;
        }
        else if(TA1CCTL1&CM1)
        {
          TA1CCTL1=(TA1CCTL1&(~CM1))|CM0; //有可能是先捕到下降沿
          end=TA1CCR1;
          LPM0_EXIT;
        }
      }
      break;                           
    case  4: break;                          // CCR2 not used
    case  6: break;                          // CCR3 not used
    case  8: break;                          // CCR4 not used
    case 10: break;                          // CCR5 not used
    case 12: break;                          // Reserved not used
    case 14:                                 // 溢出数加1
             overflow++;
             break;
    default: break;
  }
}
参考了论坛上一位兄弟贴出的程序,不过一开始不能测,后来发现是退出低功耗模式在显示那里它还在改数据,干脆就把捕获关了,数据显示了再测,结果出来可以,60K以内试过可以(总会在50HZ左右抖动)。不过频率高了就不行,论坛上有人说能在250HZ内精确到1Hz,知道的话还望不吝赐教,感谢3g465的建议! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
水货老手
2019-03-24 21:32
 精彩回答 2  元偷偷看……0人看过

一周热门 更多>

相关问题

    相关文章