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

📄 df_bh_timera.c

📁 MSP430系列单片机资料-7册-46.3M-pdf.zip
💻 C
字号:
/*****************************************************************************
文件名:df_bh_timera.c
编写者:czhang
描述:使用定时器A捕获信号的上升和下降沿,检测信号周期

版本:1.0	2005-2-20
*****************************************************************************/
#include <MSP430x14x.h>
#include "df_bh_timera.h"

#define BHSEL P2SEL  	//定义捕获端口
#define BH_IO BIT2

unsigned int Cyc;   	//检测到的信号周期
unsigned int LastCCR0;	//上一次测到的CCR0值
/*****************************************************************************
初始化
*****************************************************************************/
void InitBhTimerA()
{
	TACTL = TASSEL_1+TACLR;		//定时器A,时钟源:ACLK,连续计数模式
	CCTL0 = CCIS_1+CM_2+CAP;	//选择下降沿捕获,CCIB(P2.2)为信号源,
	BHSEL |= BH_IO;	         	//选择P2.2使用第二功能
}

/*****************************************************************************
控制捕获运行或者停止
doit:0:停止  100:运行  其他:什么都不做
*****************************************************************************/
void GoBhTimerA(unsigned char doit)
{
	if(doit==0)
	{
		TACTL &= ~MC1;		//关闭计数器
		CCTL0 &= ~CCIE;		//关闭中断
	}
	else
	{
		TACTL |= MC_2+TACLR;	//打开计数器
		CCTL0 |= CCIE;   	//捕获中断允许
	}
}

/*****************************************************************************
定时器A中断函数
中断源:CC0
*****************************************************************************/
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0()
{
	Cyc=CCR0-LastCCR0;
	LastCCR0=CCR0;
}

unsigned int GetCyc()
{
	return Cyc;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -