aaarrr 69 9 апреля, 2014 Опубликовано 9 апреля, 2014 · Жалоба Повысить уровень до -O3 -OTime, в критичных по скорости местах развернуть циклы вручную: for (max=0;max<76800 / 4;max++) { *(uint16_t *) (LCD_DATA)=y; *(uint16_t *) (LCD_DATA)=y; *(uint16_t *) (LCD_DATA)=y; *(uint16_t *) (LCD_DATA)=y; } В предыдущем листинге видно, что компилятор развернул цикл, но только на две итерации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 9 апреля, 2014 Опубликовано 9 апреля, 2014 · Жалоба Да все равно я не пойму как при такой нагрузке можно добиться 25гц кадров , при этом еще выполнять фильтрацию сигнала АЦП, работу с видео -буфером, интегрировать данные АЦП (так как сигнал представляет собой производную от физической величины), управлять шаговым двигателем, делать замер периода входного сигнала (частота сигнала от 5 до 20 гц), сравнивать амплитуду на каждой частоте, усреднять амплитуды для n-замеров на конкретной частоте, запоминать это усреднение в памяти. Размечтался ли я? =)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 9 апреля, 2014 Опубликовано 9 апреля, 2014 · Жалоба Размечтался ли я? =)) Считать надо. Но экран на внешней шине с программным формированием картинки "на лету" все несколько усложняет, конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 10 апреля, 2014 Опубликовано 10 апреля, 2014 (изменено) · Жалоба Считать надо. Но экран на внешней шине с программным формированием картинки "на лету" все несколько усложняет, конечно. Уррра! если по одному цвету выводить без расчетов, то получилсь 55 кадров в сек. Может быть и больше можно. Но не пробовал. С расчетами гораздо меньше, но для моих целей хватит теперь Время на расчеты осается, а это главное. Сигнал до 20 гц будет. Если использовать для АЦП ДМА, и поработать над алгоритмом работы, то думаю, что можно будет еще увеличить скорость отрисовки. Изменено 10 апреля, 2014 пользователем Lost_Viking Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 10 апреля, 2014 Опубликовано 10 апреля, 2014 · Жалоба А использовать DMA для EMC не получится? пусть аппаратно гонит на внешнюю шину Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 10 апреля, 2014 Опубликовано 10 апреля, 2014 · Жалоба А использовать DMA для EMC не получится? пусть аппаратно гонит на внешнюю шину что за ЕМС? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 10 апреля, 2014 Опубликовано 10 апреля, 2014 · Жалоба что за ЕМС? External Memory Controller :) я же так понимаю, дисплей сидит на именно этом контроллере? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 11 апреля, 2014 Опубликовано 11 апреля, 2014 · Жалоба External Memory Controller :) я же так понимаю, дисплей сидит на именно этом контроллере? А какая разница? Все равно видео буфер нужно обновлять 25 раз в секунду. А обновление - это расчет что рисовать - сетку осциллографа или семпл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 11 апреля, 2014 Опубликовано 11 апреля, 2014 · Жалоба Ну так это будет нужно делать программно 1 раз против 2-х! Сейчас получается, что вы будете 2 раза программно работать с этой видеопамятью - сначала изменение, потом - вывод в дисплей. А при DMA выводе можно использовать и 2 страницы... пока одна аппаратно выводится, модифицируем вторую, потом переключаем туда DMA и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 11 апреля, 2014 Опубликовано 11 апреля, 2014 · Жалоба Ну так это будет нужно делать программно 1 раз против 2-х! Сейчас получается, что вы будете 2 раза программно работать с этой видеопамятью - сначала изменение, потом - вывод в дисплей. А при DMA выводе можно использовать и 2 страницы... пока одна аппаратно выводится, модифицируем вторую, потом переключаем туда DMA и т.д. Логично. Читаю, сравниваю, модифицирую, вывожу vs Читаю, сравниваю, модифицирую. Надо подумать над Вашим предложением =))) Тогда такой вопрос: как лучше всего очистить сетку от нарисованного сигнала? Есть уйма вариантов, но может быть есть стандартный и самый экономичный? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 11 апреля, 2014 Опубликовано 11 апреля, 2014 · Жалоба Тогда такой вопрос: как лучше всего очистить сетку от нарисованного сигнала? Есть уйма вариантов, но может быть есть стандартный и самый экономичный? а не проще готовую сетку уже хранить, чем ее рисовать заново? И модифицировать, если нужно, в моменты переключения режимов/разрешения? можно еще один канал DMA параллельно завести на буфер, который будет потом модифицироваться, заполнить сеткой, модифицировать и отдать DMA для вывода Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VDLab 0 11 апреля, 2014 Опубликовано 11 апреля, 2014 · Жалоба ...Тогда такой вопрос: как лучше всего очистить сетку от нарисованного сигнала? Есть уйма вариантов, но может быть есть стандартный и самый экономичный? Самый экономный способ перерисовки уже давно придуман - сигнал прорисовывается заново, но уже цветом фона. Ну а сетка... Если там просто сетка, а не причудливое хитросплетение какое - перерисовать ее займет от силы пару миллисекунд. С таким заданием даже 16й ПИК когда то 40-50 раз в секунду справлялся, и без всяких DMA, SDRAM, а ногодрыгом да с восьмибитной шиной. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться