Re: PIC C sztring változó
Fuzesi Arnold
arno at externet.hu
Mon Jan 9 21:51:46 CET 2006
Mondjuk én totál nem értem az egész problémát...
uC-n eleve nem szivesen csinalok olyat mint Viktor akar.
Hogy RAM-bol RAM-ba masolok string hegyeket...ahogy Te is írod, duplan van
ilyenkor tárolva.
Merthogy minden constans alapbol a RAM-ban van ugye. Csak a startup kod vagy
kinullazza, vagy feltolti ertekkel, ahogy deklaralta az ember.
__flash text1[]={"alma"} a prg elején oszt kész.
A programban meg a rá mutató pointerrel dolgozok...
De ha kényelmetlen (mert az), akkor csinalok egy global pointert.
(__MEMATTR itt a flash-ben tarolast jelenti)
extern const char _MEMATTR * MYSTRING;
Aztan egy makrot amelyik ezt allitgatja a blokkban lefoglalt stringre
#define MYPSTR(s) do{static const char _MEMATTR __c[]= s; MYSTRING=
__c;}while(0)
Aztan a progiban hasznalhatom kényelmesen..
main(){
blablahegyek
MYPSTR("alma");
printf(SER0, MYSTRING)
}
De ha ragaszkodunk az ertekadashoz, akkor strukturaval lehet meg lehet
trukkozni...Azt lehet egymasnak siman ertekul adni.
Arnold
----- Original Message -----
From: "Palasik Sandor" <palasik at mail.datanet.hu>
To: <elektro at tesla.hu>
Sent: Monday, January 09, 2006 9:09 PM
Subject: Re: PIC C sztring változó
>>> Helyette: text_ram[]= "Alma";
>>> Legalábbis minden más általam ismert C-ben.
>>
>> Ez sem nyert.
>> "A numeric expression must appear here"-vel jön vissza
>> Egyszerüen nem tudom eltalálni a szintaktikáját, pedig kell legyen rá
>> valami megoldás...
>
> A helyes válasz: nincs rá megoldás :-(
>
> Kezdőértékként lehet stringet rakni karaktertömbbe, de utólagos
> értékadásként nem.
>
> Ha van hol tárolnod a stringet, amit bemásolnál, akkor memcpy vagy strcpy
> függvényel megoldhatod, de ekkor végül kétszer annyi memóriát használsz.
>
> Ha nem akarod kétszer tárolni, akkor csak karakterenként megy.
>
> Kód szempontjából az sem egy tragédia. Kb. 2 utasítás lesz karakterenként.
> Leírni persze macerás, de kb. 10 karakter alatt rövidebb, mint a memcpy.
>
> Palasik Sándor
>
> -----------------------------------
> Szponzorunk: http://tonerbolt.hu/
More information about the Elektro
mailing list