Массив во Flash-памяти

Тема в разделе "Микроконтроллеры AVR", создана пользователем Radius, 4 дек 2015.

  1. Radius

    Radius Гик

    Уважаемые гуру, подскажите пожалуйста, как в можно среде Arduino разместить таблицу в виде массива в памяти программ то есть во Flash-памяти? В AtmelStudio это все возможно, а как в Ардуино, не смог найти. Очень жалко тратить на таблицы область ОЗУ.
     
  2. ANV

    ANV Гуру

  3. Alex19

    Alex19 Гуру

    Вставлю свои 5 копеек, хоть и не гуру.

    Объявление.
    Код (C++):
    const unsigned char data[] PROGMEM =
    {
        0x01,   0xB2,   0x02,   0xFF, 0xFF,
        0x01,   0x90,   0x04,   0x09, 0x23, 0xA1, 0x35,
        0x01,   0x6A,   0x02,   0x06, 0x00,
        0x01,   0x60,   0x08,   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00,   0x60,   0x04,   0x40, 0x00, 0x00, 0x00,
        0x01,   0x62,   0x02,   0x00, 0x00,
        0x00,   0x60,   0x04,   0x00, 0x40, 0x00, 0x00
    };
    Ссылку на PROGMEM Вам указали.

    Читаем так.
    Код (C++):
    pgm_read_byte(&data[1])
    Получим 0xB2
     
    Tomasina нравится это.
  4. Radius

    Radius Гик

    Получается, что точно так же как в AtmelStudio. Думал что в Ардуино это не работает. Всем спасибо!