W jaki sposób odczytać wartość z tablicy PROGMEM w procedurze AVRGCC?
AVRGCC i wskaźniki
From: "AzaZeL" <AzaZeL_B_at_nospam_poczta.onet.pl>
Subject: AVRGCC i wskaźniki
Date: Wed, 1 Mar 2006 11:33:36 +0100
witam
mam problem
chce do procedury podac ardres w tablicy
uint8_t tablica[3] PROGMEM = {0x28,0xc6,0xd8};
void procedura(uint8_t *zmienna)
{
uint8_t cos;
cos=pgm_read_byte( co tu wpisac ? );
//do cos chce wpisac komórke np 0 z tablicy
}
int main(void)
{
procedura(&tablica);
}
juz kilka kombinacji zrobilem i niedziała
Pozdrawiam
AzaZeL
From: =?ISO-8859-2?Q?Krzysztof_Szmur=B3o?=
Subject: Re: AVRGCC i =?ISO-8859-2?Q?wska=BCniki?=
Date: Wed, 01 Mar 2006 11:42:16 +0100
AzaZeL napisał(a):
witam
mam problem
chce do procedury podac ardres w tablicy
uint8_t tablica[3] PROGMEM = {0x28,0xc6,0xd8};
void procedura(uint8_t *zmienna)
{
uint8_t cos;
cos=pgm_read_byte( co tu wpisac ? );
//do cos chce wpisac komórke np 0 z tablicy
}
int main(void)
{
procedura(&tablica);
}
juz kilka kombinacji zrobilem i niedziała
Pozdrawiam
AzaZeL
Nazwa tablicy jest jednocześnie adresem jej pierwszego elementu.
czyli powinieneś mieć:
procedura(tablica);
Krzysztof Szmurło
From: "JJJK" <janusz_karas##_at_nospam_##poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_AVRGCC_i_wska=BCniki?=
Date: Wed, 1 Mar 2006 14:50:18 +0100
Nazwa tablicy jest jednocześnie adresem jej pierwszego elementu.
czyli powinieneś mieć:
procedura(tablica);
A nie trzeba by jeszcze przekazac dlugosci tej tablicy ?
JJJK
From: "JJJK" <janusz_karas##_at_nospam_##poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_AVRGCC_i_wska=BCniki?=
Date: Wed, 1 Mar 2006 14:52:10 +0100
JJJK <janusz_karas##_at_nospam_##poczta.onet.pl> napisał
Nazwa tablicy jest jednocześnie adresem jej pierwszego elementu.
czyli powinieneś mieć:
procedura(tablica);
A nie trzeba by jeszcze przekazac dlugosci tej tablicy ?
JJJK
Heh, albo numeru elementu :)
JJJK
From: =?ISO-8859-2?Q?Krzysztof_Szmur=B3o?=
Subject: Re: AVRGCC i =?ISO-8859-2?Q?wska=BCniki?=
Date: Wed, 01 Mar 2006 14:57:37 +0100
JJJK napisał(a):
JJJK <janusz_karas##_at_nospam_##poczta.onet.pl> napisał
Nazwa tablicy jest jednocześnie adresem jej pierwszego elementu.
czyli powinieneś mieć:
procedura(tablica);
A nie trzeba by jeszcze przekazac dlugosci tej tablicy ?
JJJK
Heh, albo numeru elementu :)
JJJK
No to wtedy już: procedura(&tablica[x]);
Krzysztof Szmurło
From: Wojtek <adun_wywalto__at_nospam_o2.pl>
Subject: Re: AVRGCC i =?ISO-8859-2?Q?wska=BCniki?=
Date: Thu, 02 Mar 2006 22:34:10 +0100
Krzysztof Szmur=B3o wrote:
JJJK napisa=B3(a):
=20
JJJK <janusz_karas##_at_nospam_##poczta.onet.pl> napisa=B3
Nazwa tablicy jest jednocze=B6nie adresem jej pierwszego elementu.
czyli powiniene=B6 mie=E6:
procedura(tablica);
A nie trzeba by jeszcze przekazac dlugosci tej tablicy ?
JJJK
Heh, albo numeru elementu :)
JJJK
=20
No to wtedy ju=BF: procedura(&tablica[x]);
=20
Krzysztof Szmur=B3o
procedura(tablica+x)
=B3adniejsze :)
wojtek
From: "Artur M. Piwko" <pipene-news_at_nospam_pu.kielce.pl>
Subject: Re: AVRGCC i =?iso-8859-2?Q?wska=BCniki?=
Date: Fri, 3 Mar 2006 14:40:31 +0000 (UTC)
In the darkest hour on Thu, 02 Mar 2006 22:34:10 +0100,
Wojtek <adun_wywalto__at_nospam_o2.pl> screamed:
Nazwa tablicy jest jednocześnie adresem jej pierwszego elementu.
czyli powinieneś mieć:
procedura(tablica);
A nie trzeba by jeszcze przekazac dlugosci tej tablicy ?
Heh, albo numeru elementu :)
No to wtedy już: procedura(&tablica[x]);
Krzysztof Szmurło
procedura(tablica+x)
ładniejsze :)
Bynajmniej.
--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:229B ]
[ 15:38:50 user up 10904 days, 3:33, 1 user, load average: 0.06, 0.06, 0.06 ]
As of next week, passwords will be entered in Morse code.
From: "Artur M. Piwko" <pipene-news_at_nospam_pu.kielce.pl>
Subject: Re: AVRGCC i =?iso-8859-2?Q?wska=BCniki?=
Date: Wed, 1 Mar 2006 14:25:41 +0000 (UTC)
In the darkest hour on Wed, 1 Mar 2006 11:33:36 +0100,
AzaZeL <AzaZeL_B_at_nospam_poczta.onet.pl> screamed:
mam problem
chce do procedury podac ardres w tablicy
uint8_t tablica[3] PROGMEM = {0x28,0xc6,0xd8};
void procedura(uint8_t *zmienna)
{
uint8_t cos;
cos=pgm_read_byte( co tu wpisac ? );
//do cos chce wpisac komórke np 0 z tablicy
}
int main(void)
{
procedura(&tablica);
}
juz kilka kombinacji zrobilem i niedziała
tablica - uint8_t *
&tablica - uint8_t **
--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:214B ]
[ 15:25:17 user up 10902 days, 3:20, 1 user, load average: 0.06, 0.06, 0.06 ]
I came; I saw; I fucked up.
From: "Pelos" <pelos_at_nospam_pelos.pl>
Subject: Re: AVRGCC i wskaźniki
Date: Wed, 1 Mar 2006 15:54:09 +0100
Użytkownik "AzaZeL" <AzaZeL_B_at_nospam_poczta.onet.pl> napisał w wiadomości
news:du3ta8$5ic$1_at_nospam_bgnet.pl...
witam
mam problem
chce do procedury podac ardres w tablicy
uint8_t tablica[3] PROGMEM = {0x28,0xc6,0xd8};
void procedura(uint8_t *zmienna)
{
uint8_t cos;
cos=pgm_read_byte( co tu wpisac ? );
//do cos chce wpisac komórke np 0 z tablicy
}
int main(void)
{
procedura(&tablica);
}
juz kilka kombinacji zrobilem i niedziała
void procedura(uint8_t *zmienna)
a to nie powinno byc void procedura(PGM_P zmienna) czy jakos tak.
Nie pamietam teraz.
Takie specjalny pointer na mem flasza ?
--
Pelos
http://www.pelos.pl
From: Jurek Szczesiul <jerzy.szczesiul_at_nospam_wycin.ep.com.pl>
Subject: Re: AVRGCC i =?iso-8859-2?Q?wska=BCniki?=
Date: Wed, 1 Mar 2006 19:21:03 +0100
Wed, 1 Mar 2006 11:33:36 +0100, na pl.misc.elektronika, AzaZeL napisał(a):
juz kilka kombinacji zrobilem i niedziała
char Ftable[] PROGMEM = {0x10,0x20,0x30};
......
char GetFChar (PGM_P ftabl, int index)
{
return pgm_read_byte(ftabl + index);
}
......
a=GetFChar(Ftable,0);
--
Pozdrowienia
Jurek Szczesiul
From: "AzaZeL" <AzaZeL_B_at_nospam_poczta.onet.pl>
Subject: Re: AVRGCC i wskaźniki
Date: Wed, 1 Mar 2006 21:50:18 +0100
odpalilem
dzieki za odpowiedzi pozdrawiam
AzaZeL