Tool/software: Code Composer Studio
Hello ,
I am stuck with a simple problem,
Please help me to solve it.
I want to receive multiple data,
but I am not able to receive it.
I tried different data types also.
Can you please solve it.
My program is :
Char old; //int old
int main(void) { WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer FLL_CTL0 |= XCAP11PF; // Configure load caps //-------------------------------------------- P1DIR |= BIT4; // P5.1 output CCTL0 = CCIE; // CCR0 interrupt enabled // CCR0 = 50000; // TACTL = TASSEL_2 + MC_2; // SMCLK, continuous mode working TACTL = TASSEL_1 + MC_2; //================================FUNCTION================================== LCD_init(); uart_init(); while(1) { LCD[0] = digit[2]; //========================================================================== old = getchar(); := MY PROBLEM IS HERE..I CAN NOT RECEIVE MULTIPLE(100) DATA ..ONLY SINGLE DATA ('1' : YOU CAN SEE IN SWITCH CONDITION) // putchar(old); switch(old) { case '1': // "100" TACTL = TASSEL_1 + MC_2; old1= '1'; putchar('A'); // CCR0 = 50000; //100ms CCR0 = 1638; ////// 1638=10hz __bis_SR_register(LPM0_bits + GIE); break; case '2': TACTL = TASSEL_1 + MC_2; old1= '2'; putchar('B'); CCR0 = 8000; ////500msec ////8000 ==2hz __bis_SR_register(LPM0_bits + GIE); break; case '3': TACTL = TASSEL_1 + MC_2; old1= '3'; putchar('B'); CCR0 = 32768; ////1000msec __bis_SR_register(LPM0_bits + GIE); break; case '4': TACTL = TASSEL_2 + MC_2; old1= '4'; putchar('B'); // CCR0 = 25000; ////2000msec __bis_SR_register(LPM0_bits + GIE); break; default: TACTL = TASSEL_2 + MC_0; break; } } // return 0; } IF I USE SINGLE VARIABLE ..IT IS OK.
MY REST OF THE THINGS ARE WORKING FINE , (INTERRUPTS, UART , LCD FUNCTION). I TRIES TO USE OTHER THINGS ALSO (TRY TO USE RING BUFFER) CAN YOU PLEASE HELP ME WITH THE SOLUTION .
CAN YOU PLEASE HELP ME.
IT IS URGENT.
REGARDS,
Srijit