|
Atmega88 - выжита по максимому, Множество Джулио |
|
|
|
Oct 2 2008, 05:03
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 2-10-07
Пользователь №: 31 001

|
1к озу, 8к флэш - парень выдает на экран Множество Джулио! http://www.linusakesson.net/scene/craft/index.phpв приложении исходники, по ссылке еще и видео! Просто шокирует!
|
|
|
|
|
 |
Ответов
(1 - 56)
|
Oct 2 2008, 07:22
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 14-12-07
Из: г. Таганрог, Ростовская обл.
Пользователь №: 33 310

|
Вау ! Несомненно парень зажег.... Вопрос - на кой это все нужно ? Где практический выход проекта (на такую графику и звук уже никого не купишь)?
|
|
|
|
|
Oct 2 2008, 07:35
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Ph. Anatoliy @ Oct 2 2008, 11:22)  Вау ! Несомненно парень зажег.... Вопрос - на кой это все нужно ? Где практический выход проекта (на такую графику и звук уже никого не купишь)? Искусство ради искусства. Хотя можно было хотя бы тетрис чтоли огненный сделать... Или пинг-понг...
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Oct 2 2008, 08:50
|

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

|
Цитата(MrYuran @ Oct 2 2008, 12:42)  Не соврать бы, но по-моему, у Z80 минимальный цикл за 5 тактов выполняется. Так что ни о каких 3 Мипсах не может быть и речи Ну да, Вы правы - минимум 4. А такие спецэффекты мы там видели и даже сами кое что делали :-) Это при том что по сути даже на 1 Мипс не тянуло.
--------------------
Это не то что вы подумали ...
|
|
|
|
|
Oct 2 2008, 10:00
|

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

|
Цитата(Огурцов @ Oct 2 2008, 13:54)  А у Z80 простое тактирование и частота 4-6.5MHz, а у следующих еще больше, так что 1MIPS и даже несколько больше вполне получалось. В ZX Spectrum 48 и 128 стояли процессоры Z80A, их номинальная тактовая частота = 3.5 МГц. Это однозначно. Большая тактовая частота - 7 МГц была у Z80B, но его устанавливали только в "навороченные" спектрумы, собранные радиолюбителями... по своей сути они уже и спектрумами не являлись. Вся фишка в том, что на этих 3.5 МГц мы видели похожую картинку, что в видеоролике.
--------------------
Это не то что вы подумали ...
|
|
|
|
|
Oct 2 2008, 10:33
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Огурцов @ Oct 2 2008, 13:54)  Это у i8080 делилась на 12, 0.8 MIPS, помнится, в результате было. А у Z80 простое тактирование и частота 4-6.5MHz, а у следующих еще больше, так что 1MIPS и даже несколько больше вполне получалось. В спектруме частота у Z80 3,5МГц. Самая быстрая операция типа регистр - регистр выполняется за 4 такта (0,875 МИПС). Самая медленная за 12 тактов (0,292 МИПС) Т.е. среднепотолочная производительность ~0,5835 МИПС + Видеоконтроллер аппаратный(к тому же пиксельный растр двухцветный) + ОЗУ 48кб или 128 кб. Цитата(Огурцов @ Oct 2 2008, 14:11)  зы: Да я и говорю - жутко слабо, тема производительности меги88 не раскрыта. Вот хотябы статичную картинку, наподобие той, что в видеоролике на 3:27 попробуйте сделать, тогда и делайте такие заявления. ПС Потенциал меги раскрыт полностью  . ППС Сдается мне, что там разрешение поболее чем 64х64 будет.
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Oct 2 2008, 10:59
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(otrog @ Oct 2 2008, 10:33)  В спектруме частота у Z80 3,5МГц. Спектрумы были разные. В моем (точнее в одном из, который был дольше всего) было 4MHz, при 16MHz тактовой. Цитата(otrog @ Oct 2 2008, 10:33)  Самая быстрая операция типа регистр - регистр выполняется за 4 такта (0,875 МИПС). Самая медленная за 12 тактов (0,292 МИПС) Т.е. среднепотолочная производительность ~0,5835 МИПС среднепотолочная Цитата(otrog @ Oct 2 2008, 10:33)  Вот хотябы статичную картинку, наподобие той, что в видеоролике на 3:27 попробуйте сделать, тогда и делайте такие заявления. Так жеж пробовал: Цитата(otrog @ Oct 2 2008, 10:33)  для меги реально достижимо где-то 640x480 на 16+16 цветов (на знакоместо), строчная 31кГц. Это _без обвязки_. А если еще пару регистров/мультиплексоров добавить - вообще конфетку можно сделать. Ну чисто из спортивного интереса. А в практическом плане вряд ли какой интерес представляет. Потому как есть специализированные, гораздо более продвинутые чипы и ценой вроде как не сильно дороже.
|
|
|
|
|
Oct 2 2008, 11:56
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Огурцов @ Oct 2 2008, 14:59)  среднепотолочная Ну ладно мега 20МГц команды выполняются за 1-4 такта(20 - 5 МИПС) среднепотолочная будет 12,5 МИПС. разница между спектрумом и мегой - 12,5/0,5835=21,4 раза. Много? Да, если не учитывать, что мега программно выводит графику и программно синтезирует звук. Цитата(Огурцов @ Oct 2 2008, 14:59)  Так жеж пробовал: для меги реально достижимо где-то 640x480 на 16+16 цветов (на знакоместо), строчная 31кГц. даже 640x480х1bit это уже 38400 байт памяти видеобуфера. Как в один кристалл меги это все поместить? Мож чего-то не понимаю. Объясните плиз. Кстате в обсуждаемой поделке тоже неясно как реализован видеобуфер. Динамическая индикация какая-то получается. Типа посчитали значение цвета для пикселя и тут же вывели его?
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Oct 2 2008, 12:12
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(otrog @ Oct 2 2008, 11:56)  программно синтезирует звук Ну что Вы в самом деле - куда проще, чем видео. На первых пиках часы поверх TV-сигнала выводили, с отличным качеством. А тут даже видеоусилителей нет, т.е. автор, наверно, еще не видел, как выглядят на экране цветовые переходы от его девайса. Из-за никакого разрешения ? Цитата(otrog @ Oct 2 2008, 11:56)  даже 640x480х1bit это уже 38400 байт Режим текстовый - хвататет. Фонт во flash. Но при желании можно, наверно, спрайтов в т.ч. и в ОЗУ наделать - ничем не хуже, чем в синклеровских игрушках.
|
|
|
|
|
Oct 2 2008, 16:45
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(gormih @ Oct 2 2008, 16:31)  Если внимательно прочесть всю тему - увидите, что всетаки не упускаю  Если имеется в виду это: Цитата Но все равно это максимум 10% от производительности при том разрешении, что на экране :-) то боюсь это не так. Во первых это реал-тайм задача, промазали по времени получили искажения, во вторых если взять во внимание что "One display line takes 24 μs" это не 10%, а как минимум 70% если не все 90% прозводительности занято формированием рисунка. Хотя что там гадать код вроде как доступен, просто берем и смотрим.
|
|
|
|
|
Oct 2 2008, 17:43
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 14-12-07
Из: г. Таганрог, Ростовская обл.
Пользователь №: 33 310

|
Подведем черту ! ____________________
Проект аля "программирование ради программирования", однако автор молодец.
Сообщение отредактировал Ph. Anatoliy - Oct 2 2008, 17:44
|
|
|
|
|
Oct 2 2008, 19:25
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Да. Такие вещи создаются для оттачивания мастерства и владения в совершенстве железом контроллера и его командами. Но, по-моему разумению, это незначительно помогает в задаче "создание нового изделия". На мой взгляд задачи проектировщика следующие. 1) Максимально быстро создать проект 2) Минимизировать возможность ошибки 3) При создании писать код с максимальными возможностями заимствования в других проектах 4) Предусмотреть развитие проекта 5) Предусмотреть преемственность при дальнейшем развитии проекта. 6) Предусмотреть возможные маркетинговые ходы для появления семейства изделий. 7) Проанализировать возможные "смежные" области проекта 8) Проект должен быть максимально платформа-независимым. Вот тут наблюдаются расхождения практически по всем пунктам.
|
|
|
|
|
Oct 2 2008, 20:39
|
Участник

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

|
Цитата(Огурцов @ Oct 2 2008, 11:55)  зы: для меги реально достижимо где-то 640x480 на 16+16 цветов (на знакоместо), строчная 31кГц. Можно подробнее? Простой подсчет показывает: 640 * 480 * 60 = 18432000 пикселей. Или 18,432 мегаПикселей. Если на один пиксель один такт минимум 18мГц частота должна быть. В реальности так не получится, да и частота повыше - есть ещё зоны обратного хода луча...
|
|
|
|
|
Oct 2 2008, 21:47
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Нет ну тут Огурцов имел ввиду по видимому с внешним контроллером видио. Ну и, соответственно с внешней памятью. На чём нибудь типа m8515. Ну если так рассуждать, то цепочка следующая появляется. 1) Как бы не был быстр контроллер, применение софтового контроллера дисплея - нонсенс ничем не оправданный. Выбираем аппаратный контроллер дисплея. (внешний либо встроенный) 2) Для хорошего разрешения необходимо много ОЗУ. Выбираем внешнее ОЗУ3) Для загрузки внешних программ необходимо чтобы программы могли исполнятся из ОЗУ. AVR не катит4) Раз AVR не катит, то ближайший по цене, который катит - ARM. К томуже он быстрее всё это исполнять будет и адресное пространство побольше. 5) Если уже брать ARM с внешней памятью, то лучше ARM9. Разница в цене - невелика. 6) Если взяли ARM9, то там предусмотрена работа с SD картами - применяем. 7) Если уж об удобстве речь, то лучше сразу OS полноценную с полноценной файловой системой поставить. 8) Если ось ставить, учитывая что ARM9, то LINUX. 9) Если забомбили всё это, то писать ничего не надо, так как прибамбов на Linux и так хватает. Например DOOM.
|
|
|
|
|
Oct 3 2008, 04:33
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
OFF Цитата(SasaVitebsk @ Oct 3 2008, 01:47)  Ну если так рассуждать, то цепочка следующая появляется. ...  Ога 10) Если DOOM, с его убогой графикой надоедает, покупаем нормальный PC и ставим на него HL2 или там Spore 11) Если габариты этого агрегата не устраивают, берем ноутбук. 12) ...
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Oct 3 2008, 04:50
|
Группа: Участник
Сообщений: 14
Регистрация: 27-06-08
Из: г. Челябинск, Россия
Пользователь №: 38 580

|
Цитата(Огурцов @ Oct 2 2008, 12:54)  Это у i8080 делилась на 12, 0.8 MIPS, помнится, в результате было. А у Z80 простое тактирование и частота 4-6.5MHz, а у следующих еще больше, так что 1MIPS и даже несколько больше вполне получалось. У i8080 частота кварца предварительно делится на 9 внешней ИМС тактового генератора. А из полученного значения считаются такты от 4 до 12 (или 13 не помню) на команду. В среднем получается существенно меньше чем 0.8 MIPS.
|
|
|
|
|
Oct 3 2008, 06:35
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Nick_Shl @ Oct 2 2008, 20:39)  Если на один пиксель один такт минимум 18мГц частота должна быть. Один пиксель на один такт. Длительность развертки - 32uS, при частоте кварца 20MHz - 640 пикселей, ровно. При 16 - 512. С обратным ходом, естественно, хоть он у мониторов довольно мал. Но таки обратие внимание на мои слова "примерно" и "около". Цитата(Nick_Shl @ Oct 2 2008, 20:39)  В реальности так не получится, да и частота повыше - есть ещё зоны обратного хода луча... В реальности так и получается. Цитата(SasaVitebsk @ Oct 2 2008, 21:47)  Нет ну тут Огурцов имел ввиду по видимому с внешним контроллером видио. Ну и, соответственно с внешней памятью. На чём нибудь типа m8515. Нет, Огурцов имел ввиду похожую же поделку на меге, на _одном_ проце, без каких либо дополнительных чипов. Но, естественно, с видеоусилителями (на транзисторах). Цитата(KP580BM80 @ Oct 3 2008, 04:50)  В среднем получается существенно меньше чем 0.8 MIPS. Не понимаю, как считать "в среднем" ? Я беру корткую команду и считаю для нее. А для меги "в среднем" тоже не один мипс на мегагерц получается, так ведь ? Цитата Выполнение каждой команды производится микропроцессором в строго определенной последовательности действий, которая определяется кодом команды и синхронизируется сигналами Ф1 и Ф2 тактового генератора. Цикл команды - это время выполнения команды. За это время: команда выбирается из памяти, дешифрируется код команды, формируются управляющие сигналы для выполнения команды, завершается воздействие управляющих сигналов. Цикл команды разбивается на машинные циклы - это время, требуемое для обращения к памяти или к устройствам ввода - вывода. Цикл команды состоит из стольких машинных циклов, сколько обращений к памяти или к УВВ потребуется для выполнения этой команды. Команды этого микропроцессора могут содержать от 1 до 5 машинных циклов. В свою очередь каждый машинный цикл состоит из тактов - наименьший промежуток времени, необходимый для выполнения одного элементарного действия в микропроцессоре. Такт равен 1 периоду тактовых импульсов тактового генератора. Машинный цикл может состоять от 3 до 5 тактов. Первые три такта требуются для организации обмена с памятью, а второй и третий такты - для выполнения внутренних операций в микропроцессоре. Отсчет тактов ведется от положительных фронтов импульсной последовательности Ф1. При выполнении любой команды сначала считывается первый байт команды из памяти. Простые команды выполняются за один машинный цикл; сложные команды - за 5 машинных циклов с восемнадцатью тактами. © На 2.5MHz, один цикл и три такта - 0.833, четыре такта - 0.625 и т.д.
|
|
|
|
|
Oct 3 2008, 07:17
|
Участник

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

|
Цитата(Огурцов @ Oct 3 2008, 09:35)  Один пиксель на один такт. Длительность развертки - 32uS, при частоте кварца 20MHz - 640 пикселей, ровно. При 16 - 512. С обратным ходом, естественно, хоть он у мониторов довольно мал. Но таки обратие внимание на мои слова "примерно" и "около". Не согласен с утверждением " Один пиксель на один такт". Кроме загрузки из памяти в регистр, ещё нужен цикл и инкремент указателя...
|
|
|
|
|
Oct 3 2008, 07:44
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Чтоб зазря не спорить, предлагаю соц. соревнование: кто больше буквовков разных на экране написать сможет. Чтобы какая-то практическая ценность была - пусть это будет терминал. То есть кидаем в УАРТ строки символов (допустим, на 9600) и видим их на экране. Можно ещё клаву подцепить PS/2 и тогда полноценный терминал получается.
Что скажете?
PS: (по поводу арм/линукс/тфт и прочая) вспомнил разговор двух начальников секторов. Один заведовал отображением радиолокационной информации на экране монитора. Вроде ничего особенного - по чёрному экрану кругами гуляет луч, из-под него выскакивают обнаруженные цели, на них там буковки/циферки, при подведении курсора более подробная информация. Ну и попутно менюшки, панельки и прочая лабуда.
И вот другой начальник этому говорит: а помнишь, мол, денди? 8 бит, считанные мегагерцы, памяти никакой, программы по нескольку килобайт, а вон какую красоту рисовали. А ты типа имеешь 486 процессор, много всяких ресурсов, линукс какой-то ещё туда суёшь и всё мало...
А второй знаете что ответил? Зато, говорит, я один раз сейчас разработаю систему, а потом буду просто рюшечки править. И не зависеть от программистов, которые каждые 2 года меняются. И не разрабатывать всё заново каждый раз.
По-моему, он прав.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Oct 3 2008, 07:54
|
Участник

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

|
Цитата(Огурцов @ Oct 3 2008, 10:28)  Так люди разные - кому-то еще си для того же самого потребуется. А в результате задачка не будет решена и на 200MHz ARMе. Можно и Си. Нынче компиляторы достаточно хорошо оптимизируют. Вообще предлагаю не развивать тут тему Си vs. ASM.ARM всетаки не CISC, потому сомневаюсь, что у него есть команда загрузки в порт данных размещённых по адресу в регистре с инкрементом этого регистра выполняющаяся за 1 такт. Но даже если и есть - необходим фреймбуфер - 640*480 = 307200. Или 300кБ. А его нет. Если делать текстовый режим - то дополнительные вычисления обязательно потребуются.
|
|
|
|
|
Oct 3 2008, 08:34
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Огурцов @ Oct 3 2008, 09:35)  На 2.5MHz, один цикл и три такта - 0.833, четыре такта - 0.625 и т.д. Берём Алексенко. "В настоящее время партия и правительство уделяют..."  Итак КР580ИК80 - макс 2МГц, ИК80А - 2.5МГц. Минимальная команда 4 такта (регистр в регистр) - максимальная 18. 2.5/4 = 0.625 Мипс пиковая. Утверждение с делителем на 9 обоснованное. Так как редко применялся данный МП без тактового генератора i8024. Причина в том, что там вормировалось 2 фазы с разным сдвигом и размахом 12V. i8024 (КР580ГФ24) предусматривал подключение кварца и делил его на 9. 2.5*9 = 22.5. Никогда не встречал. Найболее распространённым был кварц 18.432 который при делении на 9 давал 2.048 при этом и получалось 0.5 мипса пиковых. Появление первой i8051 с её 1 мипсом произвело, как помню в наших рядах настоящий фурор.
|
|
|
|
|
Oct 3 2008, 08:46
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(MrYuran @ Oct 3 2008, 07:44)  По-моему, он прав. Правильно. Меги сегодня уже, похоже, умерли - 32-битники делают их во все щели. А покупка атмела микрочипом, если произойдет - будет последний гвоздь в крышку гроба. За сим славное поколение эмбеддеров будет мутировать в сторону линуксов/микрософтов. И ничего не будет "не выжимать". Ну если только опять из спортивного интереса ))) Цитата(SasaVitebsk @ Oct 3 2008, 08:34)  Минимальная команда 4 такта Хорошо, если Вы уверены, что минимальная не 3 а 4 такта, как я привел в цитате выше, то я спорить не буду - практически уже ничего нет из той литературы, а точную растактовку на пямять я сейчас не скажу даже под пыткой.
|
|
|
|
|
Oct 3 2008, 09:16
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(MrYuran @ Oct 3 2008, 11:44)  Чтоб зазря не спорить, предлагаю соц. соревнование: кто больше буквовков разных на экране написать сможет. Чтобы какая-то практическая ценность была - пусть это будет терминал. То есть кидаем в УАРТ строки символов (допустим, на 9600) и видим их на экране. Можно ещё клаву подцепить PS/2 и тогда полноценный терминал получается.
Что скажете? Такая штука уже есть http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Oct 3 2008, 09:20
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(otrog @ Oct 3 2008, 13:16)  Это я видал Цитата Video terminal: Quantity of symbols: 20 lines by 38 characters. The resolution of an individual character matrix: 8x12 points Вопрос - кто больше?
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Oct 3 2008, 09:27
|
Частый гость
 
Группа: Участник
Сообщений: 92
Регистрация: 1-06-08
Пользователь №: 37 959

|
Цитата(lock @ Oct 2 2008, 09:03)  1к озу, 8к флэш - парень выдает на экран Множество Джулио! http://www.linusakesson.net/scene/craft/index.phpв приложении исходники, по ссылке еще и видео! Просто шокирует! Боян!  Хотя, меня когда-то если не шокировало, то удивило. Цитата(gormih @ Oct 2 2008, 12:56)  Правда не стоит забывать, что у спектрума вывод на экран был сделан аппаратно... Тут же по видимому вывод на экран через перерывание таймера, из буфера. Аппаратно, но через известное место: сам экран (256х192) разбит на 3 части по 64 строки, каждая строка в которой чередуется через 7 других строк. И для вывода цветного изображения надо было выбирать два цвета на знакоместо (8х8) из палитры в 16 цветов. Цитата(Огурцов @ Oct 2 2008, 14:59)  Спектрумы были разные. В моем (точнее в одном из, который был дольше всего) было 4MHz, при 16MHz тактовой. Для большей совместимости там должен стоять кварц на 14 МГц, а на CPU через делитель подается 3,5 МГц. P.S. Кажется, в форуме иногда появляется Кирилл Фролов (а может, и другие спектрумисты), он знает практически все об архитектуре спектрума.
Сообщение отредактировал LCD - Oct 3 2008, 09:29
|
|
|
|
|
Oct 3 2008, 10:08
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(MrYuran @ Oct 3 2008, 09:20)  Это я видал Черно-белый, как первый телевизор ) Цитата(MrYuran @ Oct 3 2008, 09:20)  Вопрос - кто больше? Не вопрос - этот человек - я(с) ))) На 16MHz получилось 32 символа на 20 строк, знакоместо - 13 на 20 линий
|
|
|
|
|
Oct 3 2008, 11:04
|

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

|
Цитата(LCD @ Oct 3 2008, 13:27)  Аппаратно, но через известное место: сам экран (256х192) разбит на 3 части по 64 строки, каждая строка в которой чередуется через 7 других строк. И для вывода цветного изображения надо было выбирать два цвета на знакоместо (8х8) из палитры в 16 цветов. Нужная точка по координатам на ассемблере находилась последывательностью в несколько команд (по моему 5 или 6). Во всяком случае точно помню, что круги я научился из асма рисовать быстрее (производительней), чем это было реализовано для интерпретатора бейсик в ПЗУ :-) Или вообще советую вспомнить трехмерную векторную графику игры ELITE. Помнится даже какой то квест был с трехмерными текстурироваными объектами и движением от первого лица (тормозило правда прилично).
--------------------
Это не то что вы подумали ...
|
|
|
|
|
Oct 3 2008, 14:32
|
Участник

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

|
Цитата(slog @ Oct 3 2008, 11:54)  Кажется уже многие забыли что такое текстовый режим. Для вывода на экран текста в 640*480 не нужен буфер в 300кбайт. Достаточно 2-3кб + знакогенератор во флэш. Да и даже некоторую графику можно без буфера рисовать. На лету. Буфер не надо, но нужна скорость. Нужно взять символ, найти номер строки этого символа которая сейчас выводится на экран, найти её в памяти и только после этого мы можем её вывести. И так на каждый символ. Ну ни как не вяжется с одним пикселем за такт. Цитата(Огурцов @ Oct 3 2008, 12:05)  Скорее, еще не знают ) Уж больно вы свои познания показали - кроме голословных заявлений ничего нет. Код, алгоритм, описание приведите пожалуйста...
|
|
|
|
|
Oct 3 2008, 19:04
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Nick_Shl @ Oct 3 2008, 14:32)  Уж больно вы свои познания показали - кроме голословных заявлений ничего нет. Мне не нравится Ваш базар. Ок, какую сумму Вы готовы поставить в ответ за него ? Цитата(Nick_Shl @ Oct 3 2008, 14:32)  Код, алгоритм, описание приведите пожалуйста... Тогда Вы будете смеяться. Над собой. Так что разомнитесь лучше самостоятельно.
|
|
|
|
|
Oct 7 2008, 08:19
|
Группа: Участник
Сообщений: 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. Мог бы и не продолжать
Сообщение отредактировал KP580BM80 - Oct 7 2008, 08:30
|
|
|
|
|
Oct 7 2008, 08:37
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(KP580BM80 @ Oct 7 2008, 08:19)  В системе команд 8080 нет трехтактных инструкций Тогда соглашусь, 0,625. Все остальное - как 36,6С в среднем по больнице, без точного знания полного набора команд, или даже программы, не имеет смысла. Вообще, если бы я ориентировался на на не "только из самых "быстрых" команд", то пиксель на мегагерц ни за что бы не получился.
|
|
|
|
|
Oct 7 2008, 08:50
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(gormih @ Oct 3 2008, 15:04)  Нужная точка по координатам на ассемблере находилась последывательностью в несколько команд (по моему 5 или 6). Во всяком случае точно помню, что круги я научился из асма рисовать быстрее (производительней), чем это было реализовано для интерпретатора бейсик в ПЗУ :-)  Так и было. Кстати ПЗУ-шные окружности рисовались путем расчета функций sin и cos в формате с плавающей точкой  . Так что если рисовать на асме окружности, например по Брезенхему, то получалось не то что быстрее, а на порядки быстрей. Да и точнее они получались. Цитата(Огурцов @ Oct 3 2008, 23:04)  Тогда Вы будете смеяться. Над собой. Так что разомнитесь лучше самостоятельно. С удовольствием посмеюсь над собой, если раскажете, как на AVR за 1(один такт) нарисовать 1(один) пикслель  . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь текст.
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Oct 7 2008, 11:11
|
Гуру
     
Группа: Участник
Сообщений: 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(один) пикслель  . И не просто пиксель, а еще и составить из них, пикселей какой-нибудь цветной текст. Так я ж предлагал - пари ?
Сообщение отредактировал Огурцов - Oct 7 2008, 11:12
|
|
|
|
|
Oct 7 2008, 12:44
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 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 это пихать... Но это же сожрёт столько флеша, что в мелком кристалле не так много и останется для остальной программы.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Oct 7 2008, 15:11
|
Гуру
     
Группа: Участник
Сообщений: 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
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|