[En-Nut-Discussion] Usart Receiver Pause?

Harald Kipp harald.kipp at egnite.de
Fri Jun 10 20:23:22 CEST 2005


Matthias,

This would be generally useful.

How about

   u_long flags = UART_MF_RTSOFF;
   ioctl(fd, UART_SETMODEMCONTROL, &flags);
   flags = UART_MF_RTSON;
   ioctl(fd, UART_SETMODEMCONTROL, &flags);

or alternatively

   u_long flags;
   ioctl(fd, UART_GETMODEMCONTROL, &flags);
   flags &= ~UART_MF_RTS;
   ioctl(fd, UART_SETMODEMCONTROL, &flags);
   flags |= UART_MF_RTS;
   ioctl(fd, UART_SETMODEMCONTROL, &flags);

In opposite to UART_SETRTS this would simplify the
hardware independent layer, because only one ioctl
code needs to be checked and passed to the hardware
dependent layer.

Harald

At 19:53 10.06.2005 +0200, you wrote:
>Hi
>  I need to block IRQs for longer than the HW buffer of the AVR
>USARTS can
>  handle but cannot tolerate loosing bytes on the USARTS, too.
>
>  To solve this, I'd like to programmatically set the RTS line.
>  Should I do this in my app only or add it to the USART drivers?
>
>  I guess, I could add an IOCTRLs UART_SETRTS and UART_GETRTS
>  and add some code to usartavr.c and usart.c ?
>
>Comments ?
>
>  Matthias




More information about the En-Nut-Discussion mailing list