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;
}
}
} 展开
我把初始化捕获和中断函数贴出来。。 大侠帮我看看有没问题啊。。。。?在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;
}
}
} 展开
2个回答
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
要从电脑的一个串行口接收数据并将其从另一个串行口发送出去,你可以使用以下步骤:1. 确定你要使用的两个串行口。在大多数计算机上,串行口通常被称为COM1、COM2等。确保你了解每个串行口的名称或编号。2. 编写一个程序来读取来自一个串行口的...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询