MSP430单片机定时器捕获问题??不能产生捕获中断。帮我看看设置有没问题。?

430单片机定时器工作在捕获模式,为什么我没捕获到。?我把初始化捕获和中断函数贴出来。。大侠帮我看看有没问题啊。。。。?在P1,1接一个3V方波,就是不能进入捕获中断(定... 430单片机定时器工作在捕获模式,为什么我没捕获到。?
我把初始化捕获和中断函数贴出来。。 大侠帮我看看有没问题啊。。。。?在P1,1接一个3V方波,就是不能进入捕获中断(定时器溢出中断能进入)
void InitCaputor()
{
//IO初始化
P1DIR &= ~BIT1;
P1SEL |=BIT1; //P1.1设置为捕获输入CCI0A
TACCTL1 = CM_1 + SCS +CCIS_0 + CAP + CCIE;
//时钟源ACLK + 增计数模式 + TAIFG中断使能
CCR0 = 1000;
TACTL = TASSEL_1 + MC_1 + TAIE;
}

中断函数:
#pragma vector = TIMERA1_VECTOR
__interrupt void overflow_ISR(void)
{
switch(TAIV)
{
case 2 : {
if(cap_rise==0) //P1.1接一个3V的方波信号,这这只一个端点,程序无法到达
{
cap_first=TACCR1; //第一次捕获记录CCR0中的数
cap_rise++; //脉冲数+1
}
else
{
cap_last=TACCR1; //记录最后一次CCR0中的数
cap_rise++;
}
break;
}
case 4 : break;
case 10:{ //定时器连续计数模式 溢出中断
if(cap_first==cap_last) //未发生捕获
{
pulse = 0;
}
else
{
pulse = cap_rise-1; //捕获到的脉冲数
cap_rise = 0; //脉冲计数器 清零
time = cap_last - cap_first; //时间间隔
getok = 1; //设置标志位 完成频率采集
cap_last = 0;
cap_first = 0;
_BIC_SR_IRQ(CPUOFF); //退出低功耗模式 进行频率运算
}
break;
}
}
}
展开
 我来答
揭骏年7R
2012-07-18 · 超过22用户采纳过TA的回答
知道答主
回答量:55
采纳率:100%
帮助的人:32.8万
展开全部
P1.1应该是捕获模块0的入口吧,你使用的是TA的捕获模块1啊,看看芯片手册吧。
不知道你是什么型号的,反正我的片子P1.1是捕获模块0。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
gougou9905
2012-07-23
知道答主
回答量:3
采纳率:0%
帮助的人:4750
展开全部
这个是测频率的吗?可不可以发我一份看看,我这个程序弄不出来
邮箱524562586@qq.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式