| delorie.com/archives/browse.cgi | search |
| Date: | Wed, 16 Aug 2000 10:50:04 +0300 (IDT) |
| From: | Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> |
| X-Sender: | eliz AT is |
| To: | Florent <florent AT oih DOT rwth-aachen DOT de> |
| cc: | djgpp AT delorie DOT com |
| Subject: | Re: read a character string from a serial port ...... |
| In-Reply-To: | <8ncd7g$18p$1@nets3.rz.RWTH-Aachen.DE> |
| Message-ID: | <Pine.SUN.3.91.1000816104640.5730C-100000@is> |
| MIME-Version: | 1.0 |
| Reply-To: | djgpp AT delorie DOT com |
| Errors-To: | nobody AT delorie DOT com |
| X-Mailing-List: | djgpp AT delorie DOT com |
| X-Unsubscribes-To: | listserv AT delorie DOT com |
On Tue, 15 Aug 2000, Florent wrote:
> while (inportb(b+STATUS) & 1) {
> inportb(b+STATUS);
> string[i] = inportb (b);
> i++;
> string[i]=NULL;
> delay(1);
> };
Why are you delaying the execution for 55 milliseconds (1 clock tick)?
That's a very long time, and will surely cause you lose characters for
any baudrate above 180. The default baudrate is 9600, which is *way*
higher.
Instead of calling `delay', simply make the program loop until a
character arrives (there's a certain bit in the UART that tells that).
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |