Например TDA7294

Форум РадиоКот :: Просмотр темы - не хватает памяти данных в авр... что делать?
Форум РадиоКот
https://radiokot.ru/forum/

не хватает памяти данных в авр... что делать?
https://radiokot.ru/forum/viewtopic.php?f=20&t=5895
Страница 1 из 1

Автор:  Mozart [ Пн июл 30, 2007 21:25:39 ]
Заголовок сообщения:  не хватает памяти данных в авр... что делать?

ситуёвина такая... "изучаю" графический цветной дисплей (может потом пришлю статью)... на процесоре seps525 на каждый пиксел по 2 байта, т.е. чтобы вывести картинку хотя бы 60х66 нужно 7920 байт а память данных в at90can128 всего навсего 4кБайта при компиляции в WinAVR пишет что... хреново в общем памяти не хватает...
можно ли данные хранить в памяти программы? и как это сделать в си?

eeprom и внешняя памяти не подходят...

Автор:  Mr.Moss [ Пн июл 30, 2007 23:16:18 ]
Заголовок сообщения: 

если тебе нужно хранить изначально заданные данные то
можно в программной памяти создать массив и читать его побайтно.

Автор:  Mr.Moss [ Пн июл 30, 2007 23:19:33 ]
Заголовок сообщения: 

а вобщем можно темже способом и изменять данные в массиве.

Автор:  Mozart [ Пн июл 30, 2007 23:26:48 ]
Заголовок сообщения: 

хорошо что могу... вопрос как??? если гнушный компилятор... весь массив, созданный мною или не мною, относит к памяти данных... как сказать ему - компилятору? или как скомпилировать так чтобы этот массив был записан в память программы?

Автор:  Mr.Moss [ Пн июл 30, 2007 23:43:51 ]
Заголовок сообщения: 

не знаю как это зделать СИ, в ассемблере это так.
есть такая деректива DW которая резервирует в EEPROM или в програмноя памяти неоходимое количество байт.

Автор:  Пожиратель AVR [ Вт июл 31, 2007 08:23:18 ]
Заголовок сообщения: 

У меня тоже проблема нехватает всего навсего 380 байт памети незнаю откуда их взять ладно можно было невывисти 190 пикселей изображения но оперы тоже нехватает 121 байт

Автор:  Aheir [ Вт июл 31, 2007 08:47:36 ]
Заголовок сообщения: 

вроде как достаточно перед обявлением переменной добавить слово __flash, вот так, например:

Код:
__flash unsigned char RusFont5n4 [6][4] =
        {
   {0x3E,0x04,0x08,0x3E}, // -> И
   {0x20,0x3E,0x0A,0x06}, // -> Ъ
   {0x3E,0x02,0x3E,0x03},  // -> Ц
   {0x3E,0x08,0x04,0x3E},  // -> N
   {0x1C,0x22,0x2A,0x0C},  // -> G
   {0x3C,0x02,0x02,0x3C}  // -> U
        };

Автор:  Mozart [ Вт июл 31, 2007 09:26:08 ]
Заголовок сообщения: 

Код:
_flash unsigned char RusFont5n4 [6][4] =
        {
   {0x3E,0x04,0x08,0x3E}, // -> И
   {0x20,0x3E,0x0A,0x06}, // -> Ъ
   {0x3E,0x02,0x3E,0x03},  // -> Ц
   {0x3E,0x08,0x04,0x3E},  // -> N
   {0x1C,0x22,0x2A,0x0C},  // -> G
   {0x3C,0x02,0x02,0x3C}  // -> U
        };

а так пишут в каком компиляторе?? WinAVR это не съел

Автор:  Aheir [ Вт июл 31, 2007 10:31:51 ]
Заголовок сообщения: 

Там перед flash два подчеркивания: __flash
СVAVR кушает
Или попробуйте просто flash, без подчеркиваний.
Вообще, в хелпе к компилятору д.б. написано, проверьте меня на всякий случай..

Если в WinAVR есть функция выделения цветом служебных слов С - включите, сразу будет видно, нравится оно ему или не очень..
Да и код почитабельней смотрится.

Автор:  Mozart [ Вт июл 31, 2007 10:57:29 ]
Заголовок сообщения: 

не, есму слово флэш не нравится... ему нравится PROGMEM
Цитата:
unsigned char a[] PROGMEM = {...};

но всё равно что-то не очень-то и работает.... статья есть на http://www.avrfreaks.net/index.php?name ... ic&t=38003

Автор:  Aheir [ Вт июл 31, 2007 11:39:15 ]
Заголовок сообщения: 

а в чем "не работа" проявляется?

Автор:  Mozart [ Вт июл 31, 2007 11:46:53 ]
Заголовок сообщения: 

авр студио говорит что данные размещаются в SRAM, при обращении к массиву данных, извлекается не то что надо...
Код:
unsigned char a[] PROGMEM = {очень много чисел};

void DrawPicture(...unsigned char *Pixels){
   
   SetDDRAM();   
   for (uint16_t i = 0; i < SizeFram; i += 2) {

      WriteData(*(Pixels + i), *(Pixels + i + 1));
   }
   
}

вот кусок кода, но не весь... просто оставил то что передаю...

Автор:  Mozart [ Вт июл 31, 2007 12:53:36 ]
Заголовок сообщения: 

в общем есть функции
Код:
pgm_read_byte_far(addr)
вот при помощи неё и надо читать из флэша...

Автор:  Mozart [ Вт июл 31, 2007 23:26:19 ]
Заголовок сообщения: 

оказывается всё не просто так... нарисовал уточку размером 66х60 красиво получилось... но нужно картинку выводить 160х128 картинка получается около 37,5 кбайт.... просто так массив такого размера оказывается не просто так разместить... скоро будут первые картинки... я обещаю...

Автор:  Mozart [ Пт авг 03, 2007 08:47:50 ]
Заголовок сообщения: 

как и обещал картинки я выкладываю...

Вложения:
Комментарий к файлу: жёлтая утка...
IMG_6801n.jpg [47.82 KiB]
Скачиваний: 529
Комментарий к файлу: заслуживат отдельного внимания сам МК
IMG_6802n.jpg [65.63 KiB]
Скачиваний: 765
Комментарий к файлу: сама плата...
IMG_6799n.jpg [48.63 KiB]
Скачиваний: 749
Комментарий к файлу: картинка
IMG_6800n.jpg [35.9 KiB]
Скачиваний: 743

Автор:  Tohey [ Вт авг 07, 2007 22:55:39 ]
Заголовок сообщения: 

Не в тему:
А что за LCD? Где такой используют? Сколько стоит? Где почитать про него можно?

Автор:  Mozart [ Вт авг 07, 2007 23:00:20 ]
Заголовок сообщения: 

на процике seps525 а называется... UG-6028... стоит рублей 600 700 есть кажется в ктц-мк...

Автор:  Mamonth [ Чт авг 09, 2007 04:27:05 ]
Заголовок сообщения: 

Я совсем забыл... но видел в интернете проект по использованию внешней памяти (ОЗУ) на основе модулей от оперативки компьютера... Может подойдет проект называется Monster Memory

Автор:  Romanich [ Ср авг 29, 2007 04:16:41 ]
Заголовок сообщения:  Re: не хватает памяти данных в авр... что делать?

Mozart писал(а):
ситуёвина такая... "изучаю" графический цветной дисплей (может потом пришлю статью)... на процесоре seps525 на каждый пиксел по 2 байта, т.е. чтобы вывести картинку хотя бы 60х66 нужно 7920 байт а память данных в at90can128 всего навсего 4кБайта при компиляции в WinAVR пишет что... хреново в общем памяти не хватает...
можно ли данные хранить в памяти программы? и как это сделать в си?

eeprom и внешняя памяти не подходят...


для видеобуфера нужна внешняя SRAM (62256 например - 32кб)
далее настроить контроллер внешней памяти и пользовать!
а в менеджере проекта указать что использ. внешняя память

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/