Jak skonfigurować fdevopen do wysyłania danych na LCD i UART w AVR GCC?
[avr gcc] stdio.h problem
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
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