2908|1

19

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

用f149单片机Timer_A捕获模块测量某脉冲信号高电平时间。不知哪里出错了? [复制链接]

#include "msp430x14x.h"
#include"Cry12864.h"
#include"BoardConfig.h"//开发板系统配置函数
#define RISE 0
#define FALL 1
uchar Edage=0; //当前触发沿
uint TA_OverflowCnt;
unsigned long int RiseCapVal;
unsigned long int Period;
unsigned long int Freq;

uchar hang1[]={"周期:"};
uchar hang2[]={"频率:"};
uchar *A="us";
uchar *B="Hz";

/*初始化时钟*/
void int_clk()
{
uchar i;
BCSCTL1&=~XT2OFF; /*打开XT振荡器*/
BCSCTL2|=SELM1+SELS; /*MCLK 8M and SMCLK 1M */
do
{
IFG1 &= ~OFIFG; /*清除振荡错误标志*/
for(i = 0; i < 100; i++)
_NOP(); /*延时等待*/
}
while ((IFG1 & OFIFG) != 0); /*如果标志为1继续循环等待*/
IFG1&=~OFIFG;
}

/***************捕获初始化******************************/

void init_cap()
{

P1DIR&=~BIT2; //p1.2定义为输入状态
P1SEL |= BIT2; //p1.2设为第二功能,捕获输入端口
TACTL |= TASSEL_2+TACLR+MC_2+ID_0; //定时器时钟源选择SMCLK,不分频,连续计数模式
TACTL |=TAIE;
TACCTL1 |= CAP+CM_1+SCS+CCIS_1+CCIE; //上升JH沿捕获,CCI1A为捕获信号源,同步捕获,使能中断

}



void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
BoardConfig(0xbe); //开发版配置:关闭数码管、流水灯
int_clk();//初始化时钟
Ini_Lcd();//初始化12864
Disp_HZ(1,1,hang1,3);
Disp_String(1,8,A);
Disp_HZ(2,1,hang2,3);
Disp_String(2,8,B);
init_cap();//初始化捕获模式
_EINT();
LPM0;
}

#pragma vector=TIMERA1_VECTOR
__interrupt void TA_ISR(void)
{
switch(TAIV)
{
case 2: if(Edage==RISE)
{
RiseCapVal=TACCR1;//保存上升沿时刻捕获值
TACCTL1 |=CAP+CM_2+CCIS_1+SCS+CCIE;//改为下降沿捕获
Edage=FALL;
}
if(Edage==FALL)
{
Period=TA_OverflowCnt*65535+TACCR1-RiseCapVal;//计算周期
TA_OverflowCnt=0;//计数清零
TACCTL1 |=CAP+CM_1+CCIS_1+CCIE+SCS;//改为上升沿沿捕获
Edage=RISE;
DsplayLongNumber(1,4,Period);
Freq=(1000000/(Period));
DsplayLongNumber(2,4,Freq);
}
break;


case 4: break;


case 10: TA_OverflowCnt++;
break;
}
}
 
点赞 关注

回复
举报

19

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
菜鸟第一个帖子,未免有些生疏。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表