logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Printf zasilany tekstem z fasha [C]

Fredy 16 Sty 2012 22:56 914 2
  • #1 10407889
    Fredy
    Poziom 27  
    Witam;

    mam sobie taką tablicę wskaźników do tekstów w pamięci flash:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    i chciałbym te teksty móc wysłać przez RS232 .

    Jeśli zastosuje konstrukcję typu :
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    to wszystko jest OK.

    Ale chciałbym wysłać ten tekst poprzez funkcję printf i tu pojawiają się problemy.

    Taka konstrukcja
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    nie działa bo nie ma na końcu stringa zera.

    Ale nawet jak zmienię deklarację tablicy na :

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    to także printf("%s",napis[c]); nie wysyła na Rsa nic.
    Czy istnieje możliwość aby printf pobierał sobie zmienne z flasha, czy może robię jakiś inny błąd?
  • Pomocny post
    #2 10408742
    rad231276
    Poziom 12  
    Proponuje użyć printf("%p",napis[c]); może to coś pomoże - gdzieś kiedyś coś czytałem że niektóre argumenty prints i sprintf konfiguruje (załącza/wyłącza) się na poziomie ustawień kompilatora

    's' - the function argument is a pointer to a null terminated char string located in SRAM;

    'p' - the function argument is a pointer to a null terminated char string located in FLASH;
  • #3 10409096
    Fredy
    Poziom 27  
    Wielkie dzięki - działa !!!
REKLAMA