[En-Nut-Discussion] usartavr driver problem/bug FIX
Grzegorz Płoński
grzegorz.plonski at numeron.pl
Wed Nov 10 13:09:57 CET 2004
Hi,
Make this in usartavr.c :
if (rbf->rbf_cnt--) {
#ifdef UART_CTS_BIT
/*
* If CTS has been disabled, we disable the transmit interrupts
* and return without sending anything.
*/
if (cts_sense && bit_is_set(UART_CTS_PIN, UART_CTS_BIT)) {
cbi(UCSRnB, UDRIE);
sbi(EIMSK, UART_CTS_BIT);
rbf->rbf_cnt++; // <<<<<<<<<<<<<<<<<<<<<<<<<<<<< ADDED
return;
}
#endif
Greg Plonski,
-----Original Message-----
From: en-nut-discussion-bounces at egnite.de
[mailto:en-nut-discussion-bounces at egnite.de] On Behalf Of Ole Reinhardt
Sent: Tuesday, November 09, 2004 1:08 PM
To: Ethernut User Chat (English)
Subject: RE: [En-Nut-Discussion] usartavr driver problem/bug
Hello,
> Only tested 2 hours.
> My conclusions :
> - CTS fonction works ONLY a moment. Good behavior on the scope at this
step.
> Flow is stopped quicky...
> - After this moment, usart sends bad data (or some data are lost in fact,
I
> don't know) OR is definitively locked. (Especially true after the Tx
buffer
> becomes empty again, after strong CTS handshake...)
yes, I just have noticed this or similar behavior a few month ago. I
used both, RTS and CTS and got corrupted data after a while. I could not
figure out what exactly the problem was...
Have a look to my former posting from 09/17/2004
In one project I would need RTS / CTS handshake a lot, so I would be
glad if this could be fixed. I would do so by my own, but did not
understand how this should work correctly in the usart driver.
Hope you'll find something.
Bye,
Ole
--
kernel concepts Tel: +49-271-771091-14
Dreisbachstr. 24 Fax: +49-271-771091-19
D-57250 Netphen E+ : +49-177-7420433
--
_______________________________________________
En-Nut-Discussion mailing list
En-Nut-Discussion at egnite.de
http://www.egnite.de/mailman/listinfo.cgi/en-nut-discussion
More information about the En-Nut-Discussion
mailing list