各位Ti的大神你们好:
我需要定时70us进入Timer3中断,检测P0.7的电平值,考虑到Timer3的中断优先级不是太高,因此先做了一个每进入Timer3中断一次就翻转P0.7的测试程序,通过示波器观察输出的波形很不稳定(60us-80us都有)。我又做了一个不带Z-Stack的裸机程序,输出的波形却很稳定。我做了进一步的测试:在Mac_mcu.c中关闭了RF中断和REERR中断,并将Timer3中断组的优先级调至最高,但是输出的波形还是不稳定。
请问我该如何在不改变Z-Stack其他中断优先级的情况下,定时进入Timer3中断?
以下是我Timer3寄存器的设置:
T3CTL = 0x7f; //Timer3设置为正/倒计数模式
T3CC0 = 130;
Mac_mcu.c中断优先级的配置:
/* set RF interrupts one notch above lowest priority (four levels available) */
IP0 |= IP_RFERR_RF_DMA_BV;
IP1 &= ~IP_RFERR_RF_DMA_BV;
/* set T2 interrupts one notch above lowest priority (four levels available)
* This effectively turned off nested interrupt between T2 and RF.
*/
IP0 |= IP_RXTX0_T2_BV;
IP1 &= ~IP_RXTX0_T2_BV;
//Set T3 interrupts to highest
IP0 |= BV(3);
IP1 |= BV(3);
VV:
并不是因为中断优先级的缘故,而是代码在执行过程中,有些是有临界区保护的,所以进入的时候把EA关了,等出来以后才EA打开