📄 df_bh_timera.c.bak
字号:
/*****************************************************************************
文件名:df_bh_timera.c
编写者:czhang
描述:使用定时器A捕获比较器的输入信号
版本: 1.0 2005-2-20
*****************************************************************************/
#include <MSP430x14x.h>
#include "df_bh_timera.h"
#define FINISH 1
#define N_FINISH 0
unsigned char StaBuHuo=N_FINISH; //捕获状态标志
/*****************************************************************************
初始化
*****************************************************************************/
void InitBhTimerA()
{
TACTL = TASSEL_2+TACLR+ID_3; //定时器A,时钟源:MCLK,连续计数模式,8分频
CCTL1 = CCIS_1+CM_1+CAP; //选择上升沿捕获,CCI1B 为信号源,
}
/*****************************************************************************
控制捕获运行或者停止,打开后进入休眠状态,等待捕获中断发生,再退出休眠
doit:0:停止 100:运行 其它:什么都不做
*****************************************************************************/
void GoBhTimerA(unsigned char doit)
{
if(doit==0)
{
TACTL &= ~MC1; //关闭计数器
CCTL1 &= ~CCIE; //关闭中断
}
else
{
TACCR1=0;
TACTL |= MC_2+TACLR; //打开计数器
CCTL1 |= CCIE; //捕获中断允许
}
}
/*****************************************************************************
定时器A中断函数
中断源:CC1
*****************************************************************************/
#pragma vector=TIMERA1_VECTOR
__interrupt void TimerA1()
{
switch (__even_in_range(TAIV, 10) )
{
case 2:
//捕获/比较1中断
StaBuHuo=FINISH;
break;
}
}
/*****************************************************************************
读捕获状态和捕获值
buhuo:指向捕获值的指针
返回值:捕获状态 0:捕获未完成 1:捕获完成
*****************************************************************************/
unsigned char GetTime(unsigned int *buhuo)
{
unsigned int iq0=N_FINISH;
if(StaBuHuo==FINISH)
{
iq0=FINISH;
}
*buhuo=CCR1;
return iq0;
}
/*****************************************************************************
清除捕获状态标志
*****************************************************************************/
void ClearBuHuo()
{
StaBuHuo=N_FINISH;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -