cancel
Showing results for 
Search instead for 
Did you mean: 

Uart Issues on 115kb

robosoft
Associate II
Posted on January 13, 2010 at 04:42

Uart Issues on 115kb

3 REPLIES 3
robosoft
Associate II
Posted on May 17, 2011 at 10:00

Hi,

My program uses TIM0 interrupt and UART1 interrupt (no FIFO).

I have a problem receiving characters on 115200 Baud. The reason is that the time to execute my timer isr is longer than the time to transmit 2 characters.

I do not think it is possible to interrupt my timer isr when receiving a character as UART-interrupt has always a lower priority than TIMER-interrupt. (VIC1 and VIC0).

When I use the FIFO problem is solved. However my application needs an interrupt on every character that was received (Is this possible using a FIFO ?).

Any idea how I can solve this problem ?

Kind regards

Luc

jomedfree
Associate II
Posted on May 17, 2011 at 10:00

You can use the Receive Timeout Interrupt if you need an interrupt even if you just received one character.

In your interrupt subroutine:

/*******************************************************************************

* Function Name : UART0_IRQHandler

* Description : This function handles the UART0 interrupt request

* Input : None

* Output : None

* Return : None

*******************************************************************************/

void UART0_IRQHandler(void)

{

/***************************************************************************/

/* GESTION DE L'IT SUR RECEPTION RX0 */

/***************************************************************************/

if(UART_GetITStatus(UART0, UART_IT_Receive|UART_IT_ReceiveTimeOut) == SET)

{ /* Read characters from the receive FIFO */

....your code here

}

}

robosoft
Associate II
Posted on May 17, 2011 at 10:00

Thanks, I will try this.

Regards