?? df_bh_timera.c
字號:
/*****************************************************************************
文件名:df_bh_timera.c
編寫者:czhang
描述:使用定時(shí)器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; //捕獲狀態(tài)標(biāo)志
/*****************************************************************************
初始化
*****************************************************************************/
void InitBhTimerA()
{
TACTL = TASSEL_2+TACLR+ID_3; //定時(shí)器A,時(shí)鐘源:MCLK,連續(xù)計(jì)數(shù)模式,8分頻
CCTL1 = CCIS_1+CM_2+CAP; //選擇下降沿捕獲,CCI1B 為信號源,
}
/*****************************************************************************
控制捕獲運(yùn)行或者停止,打開后進(jìn)入休眠狀態(tài),等待捕獲中斷發(fā)生,再退出休眠
doit:0:停止 100:運(yùn)行 其他:什么都不做
*****************************************************************************/
void GoBhTimerA(unsigned char doit)
{
if(doit==0)
{
TACTL &= ~MC1; //關(guān)閉計(jì)數(shù)器
CCTL1 &= ~CCIE; //關(guān)閉中斷
}
else
{
TACCR1=0;
TACTL |= MC_2+TACLR; //打開計(jì)數(shù)器
CCTL1 |= CCIE; //捕獲中斷允許
}
}
/*****************************************************************************
定時(shí)器A中斷函數(shù)
中斷源:CC1
*****************************************************************************/
#pragma vector=TIMERA1_VECTOR
__interrupt void TimerA1()
{
switch (__even_in_range(TAIV, 10) )
{
case 2:
//捕獲/比較1中斷
StaBuHuo=FINISH;
break;
}
}
/*****************************************************************************
讀捕獲狀態(tài)和捕獲值
buhuo:指向捕獲值的指針
返回值:捕獲狀態(tài) 0:捕獲未完成 1:捕獲完成
*****************************************************************************/
unsigned char GetTime(unsigned int *buhuo)
{
unsigned int iq0=N_FINISH;
if(StaBuHuo==FINISH)
{
iq0=FINISH;
}
*buhuo=CCR1;
return iq0;
}
/*****************************************************************************
清除捕獲狀態(tài)標(biāo)志
*****************************************************************************/
void ClearBuHuo()
{
StaBuHuo=N_FINISH;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -