大神帮看下程序有问题没有?149定时器A测频率

2019-03-24 08:24发布

#include <msp430x14x.h>
#include"Config.h"
#include"12864.c"
uchar flag=0;
uchar timer;
uint time[2]={0,0};
#pragma vector=TIMERA1_VECTOR //定时器A中断处理
__interrupt void timer_a(void)
{
switch(TAIV) //向量查询
{ case 2: flag=1;//捕获中断
  case 4: break;
  case 10:break;
}
}
void main()
{
WDT_Init(); //看门狗设置
Clock_Init(); //系统时钟设置
Port_Init();                                  //系统初始化,设置IO口属性
delay_ms(100);                                //延时100ms
LCD_init();                                   //液晶参数初始化设置
LCD_clear();                                  //清屏
display_desk();
TACTL = TASSEL_2+TACLR+TAIE+MC_1; //定时器A时钟信号选择SMCLK,同时设置定时器A为连续增计模式
CCTL1 = CM_1+SCS+CAP+CCIE+CCIS_1; //输入上升沿捕获,CCI1A为捕获信号源
_EINT();
while(1)
{
    while(flag==1)//查询捕获标志
    {
      _DINT();
      flag=0;//清零捕捉标志
      time[timer]=TACCR1;//读时间
      timer++;
      if(timer==2)
        {
          timer=0;
          temp_value=time[1]-time[0];
          temp_value=8000000/temp_value;
          temp_value=temp_value+1;          //修正频率
          data_do(temp_value);
          LCD_write_str(4,2,Temp_Value);
          delay_ms(5);
         }
     }
    _EINT();
}
}



此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章