⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 df_bh_timera.c.bak

📁 MSP430系列单片机 是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 + -