реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Atmega88 - выжита по максимому, Множество Джулио
gormih
сообщение Oct 3 2008, 11:04
Сообщение #46


nofb
***

Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218



Цитата(LCD @ Oct 3 2008, 13:27) *
Аппаратно, но через известное место: сам экран (256х192) разбит на 3 части по 64 строки, каждая строка в которой чередуется через 7 других строк. И для вывода цветного изображения надо было выбирать два цвета на знакоместо (8х8) из палитры в 16 цветов.

Нужная точка по координатам на ассемблере находилась последывательностью в несколько команд (по моему 5 или 6). Во всяком случае точно помню, что круги я научился из асма рисовать быстрее (производительней), чем это было реализовано для интерпретатора бейсик в ПЗУ :-) Или вообще советую вспомнить трехмерную векторную графику игры ELITE. Помнится даже какой то квест был с трехмерными текстурироваными объектами и движением от первого лица (тормозило правда прилично).


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Nick_Shl
сообщение Oct 3 2008, 14:32
Сообщение #47


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 17-04-08
Пользователь №: 36 850



Цитата(slog @ Oct 3 2008, 11:54) *
Кажется уже многие забыли что такое текстовый режим.
Для вывода на экран текста в 640*480 не нужен буфер в 300кбайт. Достаточно 2-3кб + знакогенератор во флэш. Да и даже некоторую графику можно без буфера рисовать. На лету.
Буфер не надо, но нужна скорость. Нужно взять символ, найти номер строки этого символа которая сейчас выводится на экран, найти её в памяти и только после этого мы можем её вывести. И так на каждый символ. Ну ни как не вяжется с одним пикселем за такт.

Цитата(Огурцов @ Oct 3 2008, 12:05) *
Скорее, еще не знают )
Уж больно вы свои познания показали - кроме голословных заявлений ничего нет. Код, алгоритм, описание приведите пожалуйста...
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 3 2008, 19:04
Сообщение #48


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Nick_Shl @ Oct 3 2008, 14:32) *
Уж больно вы свои познания показали - кроме голословных заявлений ничего нет.

Мне не нравится Ваш базар. Ок, какую сумму Вы готовы поставить в ответ за него ?

Цитата(Nick_Shl @ Oct 3 2008, 14:32) *
Код, алгоритм, описание приведите пожалуйста...

Тогда Вы будете смеяться. Над собой. Так что разомнитесь лучше самостоятельно.
Go to the top of the page
 
+Quote Post
KP580BM80
сообщение Oct 7 2008, 08:19
Сообщение #49





Группа: Участник
Сообщений: 14
Регистрация: 27-06-08
Из: г. Челябинск, Россия
Пользователь №: 38 580



Цитата(Огурцов @ Oct 3 2008, 09:35) *
Не понимаю, как считать "в среднем" ? Я беру корткую команду и считаю для нее. А для меги "в среднем" тоже не один мипс на мегагерц получается, так ведь ?
......
На 2.5MHz, один цикл и три такта - 0.833, четыре такта - 0.625 и т.д.
Оценивать нужно по выполнению идентичных тестов. Теперь по расчетам. В системе команд 8080 нет трехтактных инструкций. Минимум – 4 (регистр-аккумулятор, например). Соответственно, потолок -0.625 мипс. Как для 8080, так и для меги реальная программа не может состоять только из самых "быстрых" команд. Регистров маловато (по сравнению с АВР), что вынуждает активней использовать память, а это уже 7 тактов. Ну и максимальная длительность команд – 17 тактов (я ошибся в предыдущем своем посту). Таким образом, для 8080 при самом оптимистичном прогнозе я бы не дал выше 0.3 мипс при 2.5 МГц.

P.S. Пардон, не заметил пост SasaVitebsk от Oct 3 2008, 11:34. Мог бы и не продолжать rolleyes.gif

Сообщение отредактировал KP580BM80 - Oct 7 2008, 08:30
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 7 2008, 08:37
Сообщение #50


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(KP580BM80 @ Oct 7 2008, 08:19) *
В системе команд 8080 нет трехтактных инструкций

Тогда соглашусь, 0,625. Все остальное - как 36,6С в среднем по больнице, без точного знания полного набора команд, или даже программы, не имеет смысла. Вообще, если бы я ориентировался на на не "только из самых "быстрых" команд", то пиксель на мегагерц ни за что бы не получился.
Go to the top of the page
 
+Quote Post
otrog
сообщение Oct 7 2008, 08:50
Сообщение #51


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(gormih @ Oct 3 2008, 15:04) *
Нужная точка по координатам на ассемблере находилась последывательностью в несколько команд (по моему 5 или 6). Во всяком случае точно помню, что круги я научился из асма рисовать быстрее (производительней), чем это было реализовано для интерпретатора бейсик в ПЗУ :-)

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

С удовольствием посмеюсь над собой, если раскажете, как на AVR за 1(один такт) нарисовать 1(один) пикслель wacko.gif . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь текст.


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 7 2008, 09:48
Сообщение #52


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



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


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 7 2008, 11:11
Сообщение #53


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(ReAl @ Oct 7 2008, 09:48) *
Да их и 32 можно нарисовать в таком темпе

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


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

Так я ж предлагал - пари ?

Сообщение отредактировал Огурцов - Oct 7 2008, 11:12
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 7 2008, 12:44
Сообщение #54


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Огурцов @ 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 это пихать... Но это же сожрёт столько флеша, что в мелком кристалле не так много и останется для остальной программы.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 7 2008, 15:11
Сообщение #55


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Не так немного, нужно оптимизировать, но в принципе примерно это и было отправной точкой.
2 otrog: можете смеяться )

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

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

зы: в общем-то понятно, почему и avreal далеко не каждый написал ) респект

Сообщение отредактировал Огурцов - Oct 7 2008, 15:12
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Oct 7 2008, 16:06
Сообщение #56


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



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

С такими подходами - чтобы текст/графика/музыка - аккурат в 300-400к уместим. То есть мега84096.
Go to the top of the page
 
+Quote Post
slog
сообщение Oct 7 2008, 17:07
Сообщение #57


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



С ростом мощи процессоров программирование превратилось в ремесло. Зачем думать? Можно просто, для такой задачи взять проц с 300-400к памяти. А когда-то 48К казалось огромной памятью, там можно было такую графику наворотить. И 1 мипс хватало на все.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016