eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAvr: PROGMEM, PSTR i strukturaRe: Avr: PROGMEM, PSTR i struktura
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!news.glorb.com!border3.nntp.dca.giganews.co
    m!border1.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad01.newshosting.com!ne
    wshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.n
    ews.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    Date: Mon, 08 Aug 2011 08:00:30 +0200
    From: Zbych <a...@o...pl>
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20110624 Thunderbird/5.0
    MIME-Version: 1.0
    Newsgroups: pl.misc.elektronika
    Subject: Re: Avr: PROGMEM, PSTR i struktura
    References: <j1n45i$jrp$1@news.onet.pl>
    In-Reply-To: <j1n45i$jrp$1@news.onet.pl>
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 50
    Message-ID: <4e3f7b7d$0$2445$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.15.192.162
    X-Trace: 1312783229 unt-rea-a-01.news.neostrada.pl 2445 83.15.192.162:6300
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:615209
    [ ukryj nagłówki ]

    W dniu 2011-08-08 00:38, Sebastian Biały pisze:
    > Witam.
    >
    > Chce zrobić coś takiego:
    >
    > struct Data {
    > const char *foo;
    > unsigned char a;
    > };
    >
    > Data PROGMEM data = { PSTR("Coś"), 4 };
    >
    > Oczywiscie nie mogę, bo PSTR to jest "__extension__" i można tego używać
    > chyba tylko jako argumentu funkcji: " statement-expressions are not
    > allowed outside functions nor in template-argument lists"

    I jest to nawet opisane w FAQ:

    http://www.nongnu.org/avr-libc/user-manual/FAQ.html#
    faq_rom_array

    > W kazdym razie padłem na tym że nie mam jak zainicjować statycznej const
    > struktury. Chciałbym ja inicjować dokladnie tak jak to widać, tzn w
    > miejscu.
    >
    > Tak też się nie da:
    >
    > const char PROGMEM *z = "Inne";
    > Data PROGMEM data2 = { z, 8 };
    >
    > Wylatuje z: "error: data2 causes a section type conflict"
    >
    > Zamiana z const char* na PGM_P tez nic nie pomaga. Co jeszcze powinienem
    > sprawdzić?


    U siebie stosuję coś takiego:

    static const prog_char cmd_sin_rgb_fast[] = "$sin_rgb_fast#";
    [...]

    struct{
    const prog_char * cmd;
    uint8_t len;
    uint8_t mode;
    }static const PROGMEM cmd_tab[] = {
    {cmd_sin_rgb_fast, sizeof(cmd_sin_rgb_fast) - 1, mode_sin_rgb_fast},
    [...]
    };

    i działa.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: