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