工具/软件:TI-RTOS
我想使用两个比较寄存器在两个函数中运行计时器、这是可行的吗??
#define ClkFreq 8. //计时器时钟频率(MHz)
#define 10microSec (10 * ClkFreq) //计时器中断(10us)
编号
/*每10us 打勾一次*/
void Syetem_initTimer (void)
{
TA3CCR0 = 10微秒 ;
TA3CTL = tassel_2+MC__UP; //SMCLK (8000000)、UP 模式
TA3CCTL0 |=(CCIE);
_bis_SR_register (LPM3_bits+GIE);
__no_operation();
}
#pragma vector = TIMER3_A0_vector
_interrupt void Timer3_A0_ISR (void)
{
TEMP= TEMP+10; // SMCLK、向上计数模式、清零 TAR
I (EnableFlag)
{
if (temp>=5000000) //5sec
{
EnableFlag = 0;
TEM= 0;
}
}
}
上述代码对我的一个函数有效、但如果我想在另一个函数中使用计时器、代码如下所示
/*每10us 打勾一次*/
void Syetem_initTimer (void)
{
TA3CCR0 = 10微秒 ;
TA3CCR1 =10microSec ;
TA3CTL = tassel_2+MC__UP; //SMCLK (8000000)、UP 模式
TA3CCTL0 |=(CCIE);
TA3CCTL1 |=(CCIE);
_bis_SR_register (LPM3_bits+GIE);
__no_operation();
}
#pragma vector = TIMER3_A0_vector
_interrupt void Timer3_A0_ISR (void)
{
开关(TA3IV)
{
情况0:
TEMP= TEMP+10; // SMCLK、向上计数模式、清零 TAR
I (EnableFlagFunc1)
{
if (temp>=5000000) //5sec
{
EnableFlagFunct1 = 0;
TEM= 0;
}
}
案例 CCR1:
I (EnableFlagFunc2)
{
if (temp>=10000000) // 10秒
{
EnableFlagFunc2=0;
TEM= 0;
}
}
}
以上代码对我无效
plz 帮助我解决同样的问题