Sztring tomb kerdes
Füzesi Arnold
arno at freemail.hu
Wed Apr 7 09:55:30 CEST 2004
-Ha fuggvenyen belul vagy, akkor a static miatt hisztizni szokott.
Ez amúgy nem jó?
__flash const char ResetInfoMsg1 [] [15] =
{ "POWER-ON Reset", "EXTERNAL Reset", "BROWN-OUT Reset", \
"WDT Reset ", "JTAG Reset" };
Amit irtal az azert muxik, illetve nem, mert csak egy elemu a tomb, es meg
tudja hatarozni a hosszat.
Ha sokelemu "stringtombod" van annak nem tudja, meg kell adni a leghoszabb
hosszat.
(Vagy helyszuke esetén két külön tömb, egyikben a string ömlesztve, masikban
a pointerek amelyek a stringhatárokra mutatnak)
A masik amit irtal meg azert ir ki zagyvasagot szerintem, mert a printf
normal pointert var, es abba nem fer bele a __flash pointer.
printf_P-t hasznalj.
Amúgy nekem is ki van a sejhajom a tárolási osztályok kavarásával...
Kényelmetlen eléggé...
Arnold
----- Original Message -----
From: "Bali Zoltan" <eltexto at freemail.hu>
To: <elektro at tesla.hu>; <avr-hun at x-dsl.hu>
Sent: Tuesday, April 06, 2004 7:55 PM
Subject: Sztring tomb kerdes
Sziasztok !
Tudna valaki tanacsot adni hogy alábbi
sztring tömb definiálást hogy kéne megadni EW-nek
hogy emészteni tudja.
__flash const char __flash *ResetInfoMsg1[] =
{ "POWER-ON Reset", "EXTERNAL Reset", "BROWN-OUT Reset", \
"WDT Reset ", "JTAG Reset" };
Az aggregátum init lista tárolási osztályával van probléma, mert
ha leveszem a __flash-eket akkor jó.
Amúgy az egyszerübb esetben:
const __flash char ResetInfoMsg[] = {"Muxik"};
Ha ezt akarom kiiratni pointeren kersztül :
{
const char __flash *MsgPtr;
MsgPtr = ResetInfoMsg;
printf("%s\n\r",MsgPtr);
}
Nem jelez hibát, de zagyvaságot ír ki.
Köszi
Üdv. Zoli
Ui: Amiota AVR-ezek állandó problémát jelent a tárolási
osztály. Korábban más uC-nél nem voltak ezzel problémáim.
More information about the Elektro
mailing list