Paweł Kurzawa
Guest
Sat May 08, 2004 7:59 am
Witam,
uzywam biblioteki rprintf do wyswietlania na LCD.
mam zainicjowana tablice wskaznikow jak ponizej
const u08 __attribute__ ((progmem)) *Te_ctrl[] = { "Off ", "Cool",
"Heat" };
rprintfProgStr ( (u08 *) Te_ctrl[1]);
i lipa nic nie wyswietla, mial ktos z czyms takim doswiadczenie???
napomkne ze jezeli tablica jest umieszczona w RAM'ie jak ponizej
const u08 *Te_ctrl[] = { "Off ", "Cool", "Heat" };
rprintfStr ( (u08 *) Te_ctrl[1]);
to wszystko dziala bez problemu .....
--
--
Best regards
K@pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
Jurek Szczesiul
Guest
Sat May 08, 2004 9:07 am
Sat, 8 May 2004 10:59:47 +0200, na pl.misc.elektronika, Paweł Kurzawa
napisał(a):
Quote:
const u08 __attribute__ ((progmem)) *Te_ctrl[] = { "Off ", "Cool",
"Heat" };
rprintfProgStr ( (u08 *) Te_ctrl[1]);
i lipa nic nie wyswietla, mial ktos z czyms takim doswiadczenie???
Wszyscy
Avr-gcc ze swoim 2-bajtowym wskaźnikiem nie umie samoczynnie rozpoznawac
uzytego obszaru pamieci. Do korzystania ze stalych w pamieci programu (
takze eeprom ) sluzy wiec szereg oddzielnych funkcji i makr - zajrzyj do
manuala avr-libc.
--
Pozdrowienia
Jurek Szczesiul
Paweł Kurzawa
Guest
Sat May 08, 2004 9:31 am
Quote:
Wszyscy
Avr-gcc ze swoim 2-bajtowym wskaźnikiem nie umie samoczynnie rozpoznawac
uzytego obszaru pamieci. Do korzystania ze stalych w pamieci programu (
takze eeprom ) sluzy wiec szereg oddzielnych funkcji i makr - zajrzyj do
manuala avr-libc.
Wlasnie manuala mam juz w palcu i nie ma tam zadnych informacji.
Jezeli masz jakis pomysl podziel sie prosze ...
--
--
Best regards
K@pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
Marcin Stanisz
Guest
Sat May 08, 2004 9:37 am
Dnia sob 8. maja 2004 12:07 Jurek Szczesiul napisał(a):
Quote:
Avr-gcc ze swoim 2-bajtowym wskaźnikiem nie umie samoczynnie rozpoznawac
uzytego obszaru pamieci. Do korzystania ze stalych w pamieci programu (
takze eeprom ) sluzy wiec szereg oddzielnych funkcji i makr - zajrzyj do
manuala avr-libc.
Zauważ, że przedpiśca podał dwie różne funkcje do odczytu z RAM i FLASH,
więc ja założyłem, że twórca tej biblioteki ten problem ma jakoś
rozwiązany, i siedziałem cicho ;-)
Ja stawiam na jakieś "obsolete" odwołanie w bibliotece. Przydałaby się
wersja avr-libc, avr-gcc i jakiś link do wzmiankowanego pakietu. A
najlepiej się takie proste rzeczy (jak wyświetlanie danych) pisze samemu -
przynajmniej wiadomo, na kogo narzekać ;-P
--
Marcin Stanisz
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
Paweł Kurzawa
Guest
Sat May 08, 2004 10:14 am
Po krotce wycinki zrodel uzyuwanych bibliotek do
pozyskiwania danych z FLASH'a.
#define PRG_RDB(addr) pgm_read_byte(addr)
#define pgm_read_byte(address_short) pgm_read_byte_near(address_short)
void rprintfProgStr(char str[]) {
register char c;
if (!str) return;
while((c = PRG_RDB(str++)))
rprintfChar(c);
}
i tu chyba jest ten problem ze wskaznikiem char str[] kurcze jak to obejsc
.....
--
--
Best regards
K@pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
Marcin Stanisz
Guest
Sat May 08, 2004 10:29 am
Dnia sob 8. maja 2004 12:31 Paweł Kurzawa napisał(a):
Quote:
Wlasnie manuala mam juz w palcu i nie ma tam zadnych informacji.
Jezeli masz jakis pomysl podziel sie prosze ...
Nie masz

Sprawdź ponownie punkt "7.3.15 How do I put an array of strings
completely in ROM?"
Pozdrawiam
--
Marcin Stanisz
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
Paweł Kurzawa
Guest
Sat May 08, 2004 11:11 am
Dzieki,
trzeba jednak wiecej czasu przeznaczyc na sen

)
za duzo kombinowania kod robi sie nieczytelny
poki co pozostawie te stringi w RAM'ie jak zacznie
brakowac bede sie bawil ... albo poczekam az ktos
poprawi biblioteke "rprintf".
--
--
Best regards
K@pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
Użytkownik "Marcin Stanisz" <mstanisz@poczta.bzdury.onet.pl> napisał w
wiadomości news:1241602.NMH4CcBCJR@cita...
Quote:
Dnia sob 8. maja 2004 12:31 Paweł Kurzawa napisał(a):
Wlasnie manuala mam juz w palcu i nie ma tam zadnych informacji.
Jezeli masz jakis pomysl podziel sie prosze ...
Nie masz

Sprawdź ponownie punkt "7.3.15 How do I put an array of
strings
completely in ROM?"
Pozdrawiam
--
Marcin Stanisz
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
Marcin Stanisz
Guest
Sat May 08, 2004 11:30 am
Dnia sob 8. maja 2004 14:11 Paweł Kurzawa napisał(a):
Quote:
poki co pozostawie te stringi w RAM'ie jak zacznie
brakowac bede sie bawil ... albo poczekam az ktos
poprawi biblioteke "rprintf".
Eee, biblioteka może jest OK - to ty źle zadeklarowałeś łańcuchy. I
poprosimy o odpowiedzi pod cytatem ;-)
Pozdrawiam i snu życzę - ostatnio wyspany
--
Marcin Stanisz
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
Jurek Szczesiul
Guest
Sat May 08, 2004 1:25 pm
Sat, 8 May 2004 13:14:22 +0200, na pl.misc.elektronika, Paweł Kurzawa
napisał(a):
Quote:
void rprintfProgStr(char str[]) {
register char c;
if (!str) return;
while((c = PRG_RDB(str++)))
rprintfChar(c);
}
To wyglada raczej OK. Ale jest jeden niuans : jesli wskaznik na
flash string pobierasz z rowniez flashowej tablicy ( a tak cos pamietam z
przebiegu watku ), to najpierw trzeba z tej tablicy sczytac wartosc
potrzebnego elementu ( napis = (char*)pgm_read_word(&tablica_napisow[k]); )
i dopiero tego odczytanego wskaznika uzyc do pobrania wlasciwego tekstu.
--
Pozdrowienia
Jurek Szczesiul