Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Atmega88 - выжита по максимому
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
otrog
Цитата(gormih @ Oct 3 2008, 15:04) *
Нужная точка по координатам на ассемблере находилась последывательностью в несколько команд (по моему 5 или 6). Во всяком случае точно помню, что круги я научился из асма рисовать быстрее (производительней), чем это было реализовано для интерпретатора бейсик в ПЗУ :-)

cheers.gif Так и было.
Кстати ПЗУ-шные окружности рисовались путем расчета функций sin и cos в формате с плавающей точкой 07.gif .
Так что если рисовать на асме окружности, например по Брезенхему, то получалось не то что быстрее, а на порядки быстрей. Да и точнее они получались.
Цитата(Огурцов @ Oct 3 2008, 23:04) *
Тогда Вы будете смеяться. Над собой. Так что разомнитесь лучше самостоятельно.

С удовольствием посмеюсь над собой, если раскажете, как на AVR за 1(один такт) нарисовать 1(один) пикслель wacko.gif . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь текст.
ReAl
Цитата(otrog @ Oct 7 2008, 11:50) *
С удовольствием посмеюсь над собой, если раскажете, как на AVR за 1(один такт) нарисовать 1(один) пикслель wacko.gif . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь текст.
Во.. А то "один пиксел". Да их и 32 можно нарисовать в таком темпе - сделав на каком-то порту только "видео-ноги", подготовив данные в регистрах и поставив подряд 32 команды out.
Огурцов
Цитата(ReAl @ Oct 7 2008, 09:48) *
Да их и 32 можно нарисовать в таком темпе

Ход мыслей правильный. Но в строке их рисуется не 32 а 416. Хотя можно и еще больше.


Цитата(otrog @ Oct 7 2008, 08:50) *
как на AVR за 1(один такт) нарисовать 1(один) пикслель wacko.gif . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь цветной текст.

Так я ж предлагал - пари ?
ReAl
Цитата(Огурцов @ Oct 7 2008, 14:11) *
Ход мыслей правильный. Но в строке их рисуется не 32 а 416. Хотя можно и еще больше.
Да можно заготовок наделать в духе
Код
   out PIX_PORT, reg_bkgcolor
   out PIX_PORT, reg_symcolor
   out PIX_PORT, reg_symcolor
   out PIX_PORT, reg_symcolor
   out PIX_PORT, reg_bkgcolor
   rjmp sym_loop

Код
   out PIX_PORT, reg_symcolor
   out PIX_PORT, reg_bkgcolor
   out PIX_PORT, reg_bkgcolor
   out PIX_PORT, reg_bkgcolor
   out PIX_PORT, reg_symcolor
   rjmp sym_loop

(это две заготовки, которых достаточно для 'O' в матрице 5*7 и можно в других символах использовать, 5*7 явно плохо, между символами пробелы большие, это для примера только)
А знакогенератор сделать в виде ссылок на заготовки и потом под IJMP это пихать... Но это же сожрёт столько флеша, что в мелком кристалле не так много и останется для остальной программы.
Огурцов
Не так немного, нужно оптимизировать, но в принципе примерно это и было отправной точкой.
2 otrog: можете смеяться )

Цитата
5*7 явно плохо, между символами пробелы большие

Одна из причин, почему и выбрана матрица 13*20(9*16), 2 такта требуются на переход, 1 на гашение, 1 на смену цвета. Впрочем шрифт нужен был крупный и легкочитаемый, не более 40 знаков в строке, поэтому получилось очень даже в тему.

зы: в общем-то понятно, почему и avreal далеко не каждый написал ) респект
SasaVitebsk
Я чёто не понимаю как всё это сочетается с тем, что мы видем на экране?
8кб - не так и много. 12 байт на букву Это чууууть больше 30к на алфавит...

С такими подходами - чтобы текст/графика/музыка - аккурат в 300-400к уместим. То есть мега84096.
slog
С ростом мощи процессоров программирование превратилось в ремесло. Зачем думать? Можно просто, для такой задачи взять проц с 300-400к памяти. А когда-то 48К казалось огромной памятью, там можно было такую графику наворотить. И 1 мипс хватало на все.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.