I am using PIC32MX795F512L Micro Controller. I need to develop an application where 4 led's connected to pins of controller will blink continuously at a rate of 1sec and there are 15 inputs connected to controller. These inputs will send some data to UART whenever they get HIGH. For example: while(1) { if(input1 == HIGH) { putsUART1("input1 HIGH"); } if(input2 == HIGH) { putsUART1("input2 HIGH"); } //same for rest of the inputs LED1 = HIGH delay(1000); LED2 = HIGH delay(1000); LED3 = HIGH delay(1000); LED4 = HIGH delay(1000); LED1 = LOW delay(1000); LED2 = LOW delay(1000); LED2 = LOW delay(1000); LED2 =LOW delay(1000); } above technique is polling method and is not giving real time input data to UART. I thought of using UART TX Interrupt but dont have good experience in it. I have just downloaded `FreeRTOS` for PIC32 and created few task and using RTOS it is working fine. Should I continue using RTOS or switch to use Interrupts. If there is any other way of doing it, Please help