Hirdetés

Új hozzászólás Aktív témák

  • Ismét elakadtam, kérném segítségeteket.
    Van egy rohadt nagy tömböm ami így néz ki:

    //A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - : .
    static unsigned char ABC[40][7] ={{0b00000,//A
    0b01110,
    0b10001,
    0b10001,
    0b11111,
    0b10001,
    0b10001},
    {0b00000,//B
    0b11110,
    0b10001,
    0b11110,
    0b10001,
    0b10001,
    0b11110}, ...};

    P18F684-es chip-el dolgozom aminek csak 128byte adatmemóriája van.
    A kérdésem az lenne, hogy van e mód egy 280byte-os területű tömb használatára?
    Vagy, ha ennek esélye nem sok, milyen módon tudnám kikerülni, hogy ne foglaljon le ekkora területet?
    Vagy egy hatékonyabb megoldás elmélete is érdekelhet.
    Most egy switch() elágazással oldottam meg, de ez véleményem szerint nem hatékony, nem mellesleg zabálja a program memóriát.
    Előre is köszi..

    Üdv!

    Ha

    static const unsigned char ABC[40][7]

    írsz, akkor (legalábbis régebben így volt) a FLASH-be, vagyis a program memóriába teszi a tömböt. Tehát fontos a const módosító. Mivel ezt te csak olvasod, ezért neked ez így megfelelő. Bár nem tudom, hogy milyen C fordítót használsz, de a Microchip PIC18-as fordítója régebben const módosító esetén a FLASH-be tette.

    Imi.

Új hozzászólás Aktív témák