共2条
1/1 1 跳转至页
F149,Timer F149 Timer A 的问题

问
请较高手:
我现在想用timer A 同时实现计时和输出脉冲的功能。程序如下: 设置TACCTL2 为捕获方式,TACCTL0为定时方式,这样实现是否有问题?现在程序计时部分工作正常,但是输出脉冲不正常,脉冲经常连在一起,如果禁止TACCTL2中断则输出正常,原因为何呢?
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
initialize();
TACCR0 = 0x0333; //3K pulse width
TACCTL0 = CCIE; //TACCR0 interrupt enabled
TACCTL2 = CCIE + CAP + CM1 + CM0; //interrupt enable, capture mode, both edges
TACTL = TAIE + TACLR + MC1 + TASSEL1; //interrupt enable, clear Timer_A, continuous up mode, MCLK as clock source
while(1);
}
interrupt[TIMERA0_VECTOR] void Timer_A_0_isr (void)
{
TACCR0 += 0x0333;
P5OUT ^= 0x08; //Toggle P5.3
}
interrupt[TIMERA1_VECTOR] void Timer_A_1_isr (void)
{
if (TAIV == 0x04)
{
//measure pulse wideth code here
}
}
小弟现在也是新手上路,对MSP430的timer A,B 的资源应用不是很熟悉,请高手指教,谢谢 答 1: 关注……… 答 2: 要注意临界的共享资源保存,像嵌入式系统软件那样,很重要,不可忽视 答 3: 我后来发现是TACCTL2中断处理过于频繁,导致TACCTL0无法得到CPU的及时响应,所以输出脉冲不规则,我现在是把他们分开处理,TACCTL0中断时关闭TACCTL2中断,大家有更好的办法吗?实时操作系统对这个问题有帮助吗?谢谢 答 4: 好像不太可能! 答 5: 实时操作系统对你的问题不会有帮助!
因为对你的系统不了解因此建议:
1,用更高的晶振,让CPU更快!
2,同时TACCTL2中断进入过于频繁的话就想办法解决这个问题,可能要从硬件着手!
我现在想用timer A 同时实现计时和输出脉冲的功能。程序如下: 设置TACCTL2 为捕获方式,TACCTL0为定时方式,这样实现是否有问题?现在程序计时部分工作正常,但是输出脉冲不正常,脉冲经常连在一起,如果禁止TACCTL2中断则输出正常,原因为何呢?
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
initialize();
TACCR0 = 0x0333; //3K pulse width
TACCTL0 = CCIE; //TACCR0 interrupt enabled
TACCTL2 = CCIE + CAP + CM1 + CM0; //interrupt enable, capture mode, both edges
TACTL = TAIE + TACLR + MC1 + TASSEL1; //interrupt enable, clear Timer_A, continuous up mode, MCLK as clock source
while(1);
}
interrupt[TIMERA0_VECTOR] void Timer_A_0_isr (void)
{
TACCR0 += 0x0333;
P5OUT ^= 0x08; //Toggle P5.3
}
interrupt[TIMERA1_VECTOR] void Timer_A_1_isr (void)
{
if (TAIV == 0x04)
{
//measure pulse wideth code here
}
}
小弟现在也是新手上路,对MSP430的timer A,B 的资源应用不是很熟悉,请高手指教,谢谢 答 1: 关注……… 答 2: 要注意临界的共享资源保存,像嵌入式系统软件那样,很重要,不可忽视 答 3: 我后来发现是TACCTL2中断处理过于频繁,导致TACCTL0无法得到CPU的及时响应,所以输出脉冲不规则,我现在是把他们分开处理,TACCTL0中断时关闭TACCTL2中断,大家有更好的办法吗?实时操作系统对这个问题有帮助吗?谢谢 答 4: 好像不太可能! 答 5: 实时操作系统对你的问题不会有帮助!
因为对你的系统不了解因此建议:
1,用更高的晶振,让CPU更快!
2,同时TACCTL2中断进入过于频繁的话就想办法解决这个问题,可能要从硬件着手!
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
“我踩过的那些坑”主题活动——第002期 | |
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |