Jak skonfigurować fdevopen do wysyłania danych na LCD i UART w AVR GCC?

[avr gcc] stdio.h problem





Poprzedni Następny
Wiadomość
Spis treści
From: "Paweł Kurzawa" <groups_at_nospam_kpw.qs.pl>
Subject: [avr gcc] stdio.h problem
Date: Thu, 8 Jul 2004 11:07:38 +0200


Witam,
chcialem sobie ulatwic zycie i wykozystalem
funkcje biblioteki stdio.h do wyswiatlania na LCD.
jako wyjscie wykozystalem funkcje "int lcdDataWrite(char c)"
zainicjowalem jak ponizej:
fdevopen (lcdDataWrite, NULL, 0);
dziala bez problemu.

W srodku programuchcialem skozystac z tej samej biblioteki
do wysylania znakow na UART deklarujac jak ponizej:
fdevopen (uart0_putchar, NULL, 0);
gdzie "int uart0_putchar(char c)" jest f-cja wysylajaca znak
na UART ...
... i lipa :( znakia nadal leca na LCD.

w czym tkwi problem ?
--

--
Best regards
K_at_nospam_pW from Poland

kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------




========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Wojtek Kaniewski <wojtekka_at_nospam_SPAM.SPAM.SPAM>
Subject: Re: [avr gcc] stdio.h problem
Date: Thu, 08 Jul 2004 12:16:38 +0200


Paweł Kurzawa wrote:
fdevopen (lcdDataWrite, NULL, 0);
fdevopen (uart0_putchar, NULL, 0);

w czym tkwi problem ?

fdevopen() zwraca FILE*, które ignorujesz. problem w tym, że tylko
pierwsze wywołanie fdevopen() ustawi stdio i stdout. spróbuj czegoś takiego:

fdevopen(lcdDataWrite, NULL, 0);

/* ... */

fclose(stdout);
stdout = 0;
fdevopen(uart0_putchar, NULL, 0);

zachowanie fdevopen() jest ładnie opisane w dokumentacji.

w.


========
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mai