共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 片外存储Flash使用方法(Arduino IDE环境)被打赏¥22元 | |
| 三分钟快速上手ESP-NOW(ArduinoIDE环境)被打赏¥23元 | |
| 【S32K3XX】LPSPI参数配置说明被打赏¥21元 | |
| 在WT9932C61-TINY上实现超声波测距被打赏¥22元 | |
| 基于WT9932C61-TINY的环境构建及OLED屏驱动测试被打赏¥20元 | |
| 【S32K3XX】Core-to-Core 中断使用被打赏¥21元 | |
| 「AI编程记录--含源码」用一晚上的时间写一个esp32的示波器被打赏¥19元 | |
| STM32C0116DK开发探索记(3)被打赏¥30元 | |
| STM32C0116DK开发探索记(2)被打赏¥24元 | |
| STM32C0116DK开发探索记(1)被打赏¥29元 | |
我要赚赏金
