Перейти к содержанию
    

Помогите определиться с камнем, дисплеем и пр.

Повысить уровень до -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;
}

В предыдущем листинге видно, что компилятор развернул цикл, но только на две итерации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да все равно я не пойму как при такой нагрузке можно добиться 25гц кадров , при этом еще выполнять фильтрацию сигнала АЦП, работу с видео -буфером, интегрировать данные АЦП (так как сигнал представляет собой производную от физической величины), управлять шаговым двигателем, делать замер периода входного сигнала (частота сигнала от 5 до 20 гц), сравнивать амплитуду на каждой частоте, усреднять амплитуды для n-замеров на конкретной частоте, запоминать это усреднение в памяти.

 

Размечтался ли я? =))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Размечтался ли я? =))

Считать надо. Но экран на внешней шине с программным формированием картинки "на лету" все несколько усложняет, конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Считать надо. Но экран на внешней шине с программным формированием картинки "на лету" все несколько усложняет, конечно.

Уррра! если по одному цвету выводить без расчетов, то получилсь 55 кадров в сек. Может быть и больше можно. Но не пробовал. С расчетами гораздо меньше, но для моих целей хватит теперь Время на расчеты осается, а это главное. Сигнал до 20 гц будет.

 

Если использовать для АЦП ДМА, и поработать над алгоритмом работы, то думаю, что можно будет еще увеличить скорость отрисовки.

Изменено пользователем Lost_Viking

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А использовать DMA для EMC не получится? пусть аппаратно гонит на внешнюю шину

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А использовать DMA для EMC не получится? пусть аппаратно гонит на внешнюю шину

 

что за ЕМС?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что за ЕМС?

External Memory Controller :)

я же так понимаю, дисплей сидит на именно этом контроллере?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

External Memory Controller :)

я же так понимаю, дисплей сидит на именно этом контроллере?

А какая разница? Все равно видео буфер нужно обновлять 25 раз в секунду. А обновление - это расчет что рисовать - сетку осциллографа или семпл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так это будет нужно делать программно 1 раз против 2-х!

Сейчас получается, что вы будете 2 раза программно работать с этой видеопамятью - сначала изменение, потом - вывод в дисплей.

А при DMA выводе можно использовать и 2 страницы... пока одна аппаратно выводится, модифицируем вторую, потом переключаем туда DMA и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так это будет нужно делать программно 1 раз против 2-х!

Сейчас получается, что вы будете 2 раза программно работать с этой видеопамятью - сначала изменение, потом - вывод в дисплей.

А при DMA выводе можно использовать и 2 страницы... пока одна аппаратно выводится, модифицируем вторую, потом переключаем туда DMA и т.д.

 

Логично.

Читаю, сравниваю, модифицирую, вывожу

vs

Читаю, сравниваю, модифицирую.

 

Надо подумать над Вашим предложением =)))

 

Тогда такой вопрос: как лучше всего очистить сетку от нарисованного сигнала? Есть уйма вариантов, но может быть есть стандартный и самый экономичный?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда такой вопрос: как лучше всего очистить сетку от нарисованного сигнала? Есть уйма вариантов, но может быть есть стандартный и самый экономичный?

а не проще готовую сетку уже хранить, чем ее рисовать заново? И модифицировать, если нужно, в моменты переключения режимов/разрешения?

можно еще один канал DMA параллельно завести на буфер, который будет потом модифицироваться, заполнить сеткой, модифицировать и отдать DMA для вывода

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Тогда такой вопрос: как лучше всего очистить сетку от нарисованного сигнала? Есть уйма вариантов, но может быть есть стандартный и самый экономичный?

Самый экономный способ перерисовки уже давно придуман - сигнал прорисовывается заново, но уже цветом фона. Ну а сетка... Если там просто сетка, а не причудливое хитросплетение какое - перерисовать ее займет от силы пару миллисекунд. С таким заданием даже 16й ПИК когда то 40-50 раз в секунду справлялся, и без всяких DMA, SDRAM, а ногодрыгом да с восьмибитной шиной.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...