MegaVolt 29 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Есть некий контроллер дисплея. Есть проц который пишет картинку в память контроллера. Контроллер отображает с какой то своей частотой. Собственно есть несколько вариантов 1. Проц пишет со своей скорость, контроллер отображает со своей. 2. Проц знает частоту обновления и обновляет данные синхронно с отрисовкой Собственно подскажите есть ли какие то типовые паттерны для обоих случаев которые стоит писать в память чтобы наглядно убедиться в наличии заданных FPS. А в идеале чтобы можно было их измерить например +/-5 FPS пойдёт. Примерно как умудряются отображать гамму дисплея рисуя чёрно белые полосочки. Вот может уже всё придумано до нас? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Собственно подскажите есть ли какие то типовые паттерны для обоих случаев которые стоит писать в память чтобы наглядно убедиться в наличии заданных FPS. А в идеале чтобы можно было их измерить например +/-5 FPS пойдёт. Вам надо померить FPS без дополнительных датчиков (фотодиодов)? Например так: Допустим - известно, что видеопамять выводится построчно (т.е. - сперва 1-я, строка, потом - 2-я и т.д.). Изначально экран пустой - заполнен 0-ми. МК с фиксированной скоростью (прерывания и прочие процессы все выключены, есть только один процесс рисования) в первом проходе цикла выводит столбец байтов 0xFF, затем сразу же этот же столбец во 2-м проходе заполняет нулями. Скорость вывода столбца должна быть больше скорости экранной развёртки (за время одной развёртки МК должен успеть заполнить 0xFF, а затем заполнить 0-и этот столбец). Данный процесс повторять периодически с интервалом примерно в 2-3 экранных развёртки. На экране будет наблюдаться мерцающий вертикальный столбец, перемещающийся по вертикали (из-за разности начальных фаз отрисовки контроллером экрана и CPU). Меряем линейкой высоту столбца на экране и из неё, зная скорость отрисовки CPU, получаем частоту развёртки. Если знать начало развёртки видеоконтроллером (по какому либо сигналу), то привязав отрисовку CPU к этому сигналу, можно получить статичный, а не плывущий по экрану столбец. Даже если не знать начало развёртки кадра, то можно, варьируя задержку между циклами отрисовки (на небольшую величину), добиться малой скорости смещения столбца, так чтобы померить его было удобно. Также можно линейку нарисовать в соседнем столбце (пикселами). Примерно так. PS: Да - и при чём тут "Аналоговая техника"??? Вроде есть спец. ветка по устройствам отображения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 29 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Вам надо померить FPS без дополнительных датчиков (фотодиодов)?Ага именно так. И желательно без пересчёта тоже :))) Например так: Меряем линейкой высоту столбца на экране и из неё, зная скорость отрисовки CPU, получаем частоту развёртки.Т.е. по сути мы включаем столбец на некоторое время и смотрим сколько строк успел отрисовать экран за кадр? Хитро... PS: Да - и при чём тут "Аналоговая техника"??? Вроде есть спец. ветка по устройствам отображения.Упс... не нашёл подходящий раздел :(. Модераторы перенесите тему плииз в нужный раздел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Т.е. по сути мы включаем столбец на некоторое время и смотрим сколько строк успел отрисовать экран за кадр? Хитро... Да. Основная идея: измерение разницы частот кадровой развёртки и рисования CPU. Поэтому скорость рисования CPU должна быть фиксированной. Далее время рисования измеряем таймером и вычисляем частоту развёртки. Можно придумать разные вариации этого метода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Myron 0 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Да. Основная идея: измерение разницы частот кадровой развёртки и рисования CPU. Поэтому скорость рисования CPU должна быть фиксированной. Далее время рисования измеряем таймером и вычисляем частоту развёртки. Можно придумать разные вариации этого метода.А в качестве таймера используйте песочные часы. Меняя количество песка в них можно синхронизировать частоту кадров/развертки с часами. Остается только создать механизм переворачивания песочных часов по кадровому импульсу. Ну и решение из прошлого века - почему нельзя просто измерить частоту кадровых/строчных импульсов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба С какой частотой выдает картинку контроллер, знает осциллограф по сигналам развертки. С какой частотой процессор загружает, это можно тоже на контрольную ножку сигнал вывести. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Ну и решение из прошлого века - почему нельзя просто измерить частоту кадровых/строчных импульсов? Исходя из условия. А Вы знаете какой там контроллер? А если это капля компаунда на стекле? С какой частотой процессор загружает, это можно тоже на контрольную ножку сигнал вывести. Зачем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Myron 0 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Исходя из условия. А Вы знаете какой там контроллер? А если это капля компаунда на стекле?А если устройство зарыто на Луне? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Исходя из условия. А Вы знаете какой там контроллер? А если это капля компаунда на стекле? Пусть ТС доложит. Думается, все же нет. Зачем? Проверить в реальной работе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Myron 0 25 сентября, 2017 Опубликовано 25 сентября, 2017 · Жалоба Пусть ТС доложит. Думается, все же нет. Проверить в реальной работе. Вот именно. И в реальных условиях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 29 26 сентября, 2017 Опубликовано 26 сентября, 2017 · Жалоба Ну и решение из прошлого века - почему нельзя просто измерить частоту кадровых/строчных импульсов?Несколько причин. 1. В дисплее не выведена сия ножка. Т.е. есть только интерфейс от проца к памяти. Между памятью и дисплеем влезть осциллографом низя :( 2. Заказчику хотелось бы показать нечто наглядное. 3. Хотелось бы показать не только то что дисплей может выводить статическую картинку с нужной частотой но и то что данные меняются с той же частотой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 26 сентября, 2017 Опубликовано 26 сентября, 2017 · Жалоба Несколько причин. 1. В дисплее не выведена сия ножка. Т.е. есть только интерфейс от проца к памяти. Между памятью и дисплеем влезть осциллографом низя :( В статусе контроллера дисплея есть флаги, я так думаю. Vertical non-Display period status. Вообще-то, программист сам задает частоту работы контроллера жки. Зачем ее проверять? Раз влезть, есть очень надо, удостовериться, и шабаш. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 29 26 сентября, 2017 Опубликовано 26 сентября, 2017 · Жалоба В статусе контроллера дисплея есть флаги, я так думаю. Vertical non-Display period status.Увы нет такого флага. Частота обновления вычисляется как по некой формуле от штук 5 переменных которые пишутся в разные регистры. (чем то похоже на PLL). И что там получилось на выходе можно только гадать. То ли не ту циферку записал то ли ещё где ошибся. Но готового числа обратно он не отдаёт. Вообще-то, программист сам задает частоту работы контроллера жки. Зачем ее проверять? Раз влезть, есть очень надо, удостовериться, и шабаш.Так в этом и вопрос. Как проверить то что программист напрограммил? Как показать это заказчику? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 26 сентября, 2017 Опубликовано 26 сентября, 2017 · Жалоба Так просто - если изображение есть и не мерцает, значит герц 50 - 60 имеется. А больше и не надо. Я попробовал камерой мобильника глянуть, может, биения частот будут видны. Но нет, у меня не видно. P.S. А мерцание хорошо боковым зрением наблюдать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 26 сентября, 2017 Опубликовано 26 сентября, 2017 · Жалоба Проверить в реальной работе. Длительность операций CPU намного удобнее (и точнее) измерять по таймеру. Так просто - если изображение есть и не мерцает, значит герц 50 - 60 имеется. А больше и не надо. Я попробовал камерой мобильника глянуть, может, биения частот будут видны. Но нет, у меня не видно. И не будет видно даже если там не 50-60Гц. Если конечно у ТС не ЭЛТ-экран Так в этом и вопрос. Как проверить то что программист напрограммил? Как показать это заказчику? Мой способ испытали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться