[ATmega168 WinAVR] Длинные const массивы - возможно ли?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
watchmaker
Поставщик валерьянки для Кота
Сообщения: 2183
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Откуда: Харьков
Контактная информация:

[ATmega168 WinAVR] Длинные const массивы - возможно ли?

Сообщение watchmaker »

Возможно ли задавать const char (или int) массивы размером больше размера оперативной памяти? Если возможно, как это делать? Необходимо только читать значения из массива по порядку и выполнять различные действия в зависимости от этих значений.
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Реклама
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Re: [ATmega168 WinAVR] Длинные const массивы - возможно ли?

Сообщение BerZerK-ku »

Разместите массивы в памяти программ.
В IAR на С это можно сделать так: __flash char[xxx];
Реклама
Аватара пользователя
coredumped
Опытный кот
Сообщения: 838
Зарегистрирован: Вт апр 12, 2011 18:38:19
Откуда: с Земли

Re: [ATmega168 WinAVR] Длинные const массивы - возможно ли?

Сообщение coredumped »

Для WinAVR размещение в program flash массива делается так:
Инклудим
#include <avr/pgmspace.h>

Объявляем массив констант
const uint8_t array[] PROGMEM ={1,2,3,4,5};

Используем
a = pgm_read_byte(&array[0]);
b = pgm_read_byte(&array[3]);

Также имеется
pgm_read_word() - читает 2 байта (word)
pgm_read_dword() - читает 4 байта (dword)
Все будет только лучше, в крайнем случае - хуже.
watchmaker
Поставщик валерьянки для Кота
Сообщения: 2183
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Откуда: Харьков
Контактная информация:

Re: [ATmega168 WinAVR] Длинные const массивы - возможно ли?

Сообщение watchmaker »

Уже нашел на АВРфрикс... действительно удобно.
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»