共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
