共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
| 【分享开发笔记,赚取电动螺丝刀】墨水屏文本显示器被打赏¥25元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX软件读取HTS221温湿度被打赏¥22元 | |
| M5PAPERESP32EINKDEVKIT评测|使用MicroPython开发M5Paper被打赏¥15元 | |
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
| OK1126B-S开发板下多时段语音提示型电子时钟被打赏¥27元 | |
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
我要赚赏金
