title: Timer Interrupt and UART Receive Interrupt
body: <p>I am a newbie with programming and I am having trouble getting my interrupts to work the way I want them to for my application. I want to send serial data over the UART to the PSoC, store the values every second, and then echo back the stored values. I am using a RX interrupt (RX FIFO not empty, priority 2) and a timer interrupt with the TC (priority 3). Attached is the TopDesign configuration. Currently, I am trying to get this code to work (just a sample code to see if I can get the interrupts to work correctly). I send the PSoC a string containing a character 'o', I should be reading only 'o' and '-', but the code always gets stuck in one of the interrupts with the other one never working. Could anyone tell me what I am doing incorrectly? Much appreciated!
  The board is CY8CKIT-042.</p>
  
  <pre><code>#include &lt;project.h&gt;//Contains
  #include &lt;stdlib.h&gt;
  #include &lt;string.h&gt;
  #include &lt;stdbool.h&gt;
  uint16 ms_count = 0;
  uint8 ch;
  
  CY_ISR_PROTO(Timer_ISR);
  CY_ISR_PROTO(RX_ISR);
  
  CY_ISR(Timer_ISR){//Every millisecond, the code goes here
      ms_count++;
      if (ms_count == 1000){//Every second
          ms_count = 0;
          LED_Write(!LED_Read());
          while(ch != 'o')UART_UartPutChar('-');
      }
  }
  
  CY_ISR(RX_ISR){
      uint8 status = UART_rx_ClearInterrupt();//Clear interrupt flag
      uint8 sub;
      sub = UART_UartGetChar();
      if (sub != 0u){//Make sure grabbed character is not an empty
          ch = sub;
          if (ch == 'o'){
              UART_UartPutChar(ch);
          }
      }
  }
  
  int main()
  {   
      /* Start SCB UART TX+RX operation */
      Timer_1_Start();
      Time_ISR_StartEx(Timer_ISR);
      RX_ISR_StartEx(RX_ISR);
      CyGlobalIntEnable;
      /* Start SCB UART TX+RX operation */
      UART_Start();
      UART_UartPutString("fdssf\n");
  
      for(;;)
      {
  
      }
  }
  </code></pre>