#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();
}
}
此帖出自
小平头技术问答
一周热门 更多>