RTV forum PL | NewsGroups PL

Problemy z wyświetlaniem tablicy wskaźników w pamięci programu przy użyciu rprintf w AVR GCC?

AVRGCC

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z wyświetlaniem tablicy wskaźników w pamięci programu przy użyciu rprintf w AVR GCC?

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 Wink
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 Wink
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 Smile 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 Smile)
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 Smile 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

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z wyświetlaniem tablicy wskaźników w pamięci programu przy użyciu rprintf w AVR GCC?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map