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

Логические экраны

Друзья, здравствуйте!

Сразу извенюсь за грамматические ошибки в тексте.

Есть такой вопрос

У меня есть функция вывода пикселя на экран

pixel(x,y,color); и на ней организовано вся библиотека рисования приметивов на TFT димплее.

У меня встала задача смешения двух изображений при выводе на экран, точнее сетки и нарисованного на ней сигнала с ацп.

Экран мигает жутко!

У меня родилась идея смешения нескольких изображений в месте и вывода их на физический экран.

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

pixel(x,y,color,disp1);

Тоесть создать логический экран и функция вывода бы решала что выводить на физический экран, сигнал одного из каналов ацп либо сетку пробегая курсором по экрану регистрации.

Подскажите как проще и без затратно решить проблему!

Сам я вижу такой выход

struct pixel {

int x,y;

union disp {

disp1, disp2, disp3;

}

}

Помогите идеей или если это лажа оградите от лишнего труда :-)

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


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

У меня есть функция вывода пикселя на экран

 

попробуйте смешать данные до вывода на экран.

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

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


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

Есть большая вероятность, что мигают сами по себе либо кривая библиотека, либо кривой дисплей, это далеко не редкость.

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


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

Plain,

В отдельности сетка и сигнал не мигают, мигают лишь тогда когда я вывожу сетку и потом сигнал, видимо изза того что изображения не смешаны, уначале рисуется сетка потом сигнал!

Мне же нужно както смешать воедино

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


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

Если Вы попеременно выводите два разных кадра, то разумеется будет мигать, как и любой стереотелевизор. Можете засинхронизировать с Вашим экраном какие-нибудь стереоочки — мигать перестанет и сетка смешается с синусом в пропорции 50%. Вот ровно то же самое (т.е. хотя бы среднее арифметическое) Вам и надо сделать программно, на ходу, и безо всяких буферных памятей.

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


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

Обычно чтоб не мигало имеют минимум две страницы, рисуют в неактивную страницу, все логические операции делают при собственно рисовании, по окончании рисования меняют местами указатели на страницу вывода и страницу отображения. Для синхронизации, если отображение происходит в прерывании, там имеется своя локальная копия указателя страницы вывода. Если нет времени на полную очистку экрана перед заполнением (похоже на Ваш случай)- заводим отдельно буфер для вывода пар точек графика, потому что при обновлении с очисткой будет проще выводить эти пары точек XORом

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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