共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 跳转至页
回复
打赏帖 | |
---|---|
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K146】S32DS RTD 驱动环境搭建被打赏12分 | |
【分享开发笔记,赚取电动螺丝刀】【IAR】libc标注库time相关库函数使用被打赏23分 |