Timer a usage in msp430 in high compiler optimization mode
Posted
by Vishal
on Stack Overflow
See other posts from Stack Overflow
or by Vishal
Published on 2010-06-13T08:04:35Z
Indexed on
2010/06/13
8:12 UTC
Read the original article
Hit count: 371
Hi,
I have used timer A in MSP430 with high compiler optimization, but found that my timer code is failing when high compiler optimization used. When none optimization is used code works fine.
This code is used to achieve 1 ms timer tick. timeOutCNT is increamented in interrupt.
Following is the code,
//Disable interrupt and clear CCR0
TIMER_A_TACTL = TIMER_A_TASSEL | // set the clock source as SMCLK
TIMER_A_ID | // set the divider to 8
TACLR | // clear the timer
MC_1; // continuous mode
TIMER_A_TACTL &= ~TIMER_A_TAIE; // timer interrupt disabled
TIMER_A_TACTL &= 0; // timer interrupt flag disabled
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 500;
TIMER_A_TACTL &= TIMER_A_TAIE; //enable timer interrupt
TIMER_A_TACTL &= TIMER_A_TAIFG; //enable timer interrupt
TACTL = TIMER_A_TASSEL + MC_1 + ID_3; // SMCLK, upmode
timeOutCNT = 0;
//timeOutCNT is increased in timer interrupt
while(timeOutCNT <= 1); //delay of 1 milisecond
TIMER_A_TACTL = TIMER_A_TASSEL | // set the clock source as SMCLK
TIMER_A_ID | // set the divider to 8
TACLR | // clear the timer
MC_1; // continuous mode
TIMER_A_TACTL &= ~TIMER_A_TAIE; // timer interrupt disabled
TIMER_A_TACTL &= 0x00; // timer interrupt flag disabled
Can anybody help me here to resolve this issue? Is there any other way we can use timer A so it works fine in optimization modes? Or do I have used is wrongly to achieve 1 ms interrupt?
Thanks in advanced.
Vishal N
© Stack Overflow or respective owner