Увидел фото тоже решил попробать на экран вывести каконить сигнал. В этоге имеем L2F50+atmega128+16Mhz на вход АЦП подан табличный синус на R2R делителе.
Пробал программу поразному писать сначала делать 176 преобразований записывать в масив и потом отуда в экран , ну как-то непонравилось долгое обновление картинки дето около 500мс.
Второй варянт что на фото после каждого преобразования сразу писать в экран получилось мона даже сказать реалмтайм ,также сделал черный фон обновление экрана невидно!.
Фото делал торопясь качество неочень Преложу таблицу синуса может кому пригодится.
Если укаво есть функция создания пилы на R2R делители поделитесь пожалуйста .
Вложения:
Комментарий к файлу: фото .JPG [80.15 KiB]
Скачиваний: 1255
Комментарий к файлу: фото 2.JPG [36.86 KiB]
Скачиваний: 970
Комментарий к файлу: табличный синус .txt [835 байт]
Скачиваний: 603
Если разгребу исходник может и выложу, ибо там в основном проект библиотеки для дисплея.
Man Прикольно получилось, а сколько примерно FPS ? У меня гдето 20-22 кадра в секунду если в рельном времени, но этого мало всеравно, фликер видно и падает контрастность изображения.
Кстати я оцифровку переделал теперь пишем в буфер из 256 значений потом усреднение простейшее и вывод кординаты X из буфера на дисплей, а кордината Y просто перебирается от 0 до 175. Так получается скорость оцифровки поднять, у меня при таком подключении осцилоскоп до 13 Кгц показывает сигнал.
_________________ Where technology meets enjoyment.
На глаз честно сказать скоко FPS незнаю , обновления на черном фоне совсем невидно.
Завтро попробую затактировать от 25Mhz.
Шас думаю как избавится от нехарошей операции деления каторой в AVR нету=( , а использую я ее в делении результатов АЦП на 2 и потом вывожу по оси Y какрас получается 128 а разрешение 132.
Ну а 4 неиспользованых пиксела мона рамочку нарисовать но это лишние такты ...
Сейчас еше напишу быстренко функцию по рисованию сетки,ну уже реалмтайма некакова неполучится(
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
У меня сетка тоже моей функцией рисуется, у меня дисплей разбит на квадраты по 22 пиксела. 176\22 = 8 и 132\22 = 6.
От опереации деления можно избавится просто читая 176 значений из 255 максимальных в АЦП. Т.е заполняем буфер 176 значниями и заполняем ими дисплей. Тогда размах амплитуды получится ровно в 132 пиксела.
Примерно вот так
Код:
for (i=176,i>0;i--) { buff[i]=ADCH; _delay_us(1); }
У меня прорисовка вообще мгновенная, но фликер видно. Ды и вообще ресурсов AVRки, мало надо АРМ и внешний АЦП.
_________________ Where technology meets enjoyment.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Я вот так делаю тут сразу рисование каждой точки после преобразования.
ARM деже его еше взять... да и с AVR еше проблем хватает Попробать затактировать AVR денить на 30Mhz-40Mhz от внешнего генератора производительность всетоки уже в двое возрастет но вот гложат сомнения что некоторая перефирия просто небудет работать...
Я делаю точно также, только плюс сначала все складываю в буфер, и АЦП работает в Free Running mode, так ненадо ждать окончания преобразования. AVR ка при 40 Мгц глючит дико, 36 более менее но глючит АЦП и SPI. Думаю переделывать под ARM, скоро привезут AT91SAM256 и STM32F103 там и псмотрим, что выйдет пока надежды на STM32 он 72 Mhz.
Надо внешний АЦП найти какой ни будь, и по фронту тактового генератора, читаем значения из АЦП, а по спаду рисуем на дисплей - можно мегагерц пять получить оцифровку.
_________________ Where technology meets enjoyment.
Впаял кварц на 25Mhz честно выдернутый и 8 портового тупника Также написал функцию рисования сетки , обновление заметно это нерадует Нашел глупую ошибку в функции думаю почему умя все цвета почти синии если по пикселу рисовать ,а оказалось вводимое значение в функцию было char заместо int.
Вложения:
Комментарий к файлу: фото нечеткое иза тавочто без вспышке сетка нарисована 1 пикселом насамом деле... 1.JPG [65.63 KiB]
Скачиваний: 834
Впаял кварц на 25Mhz честно выдернутый и 8 портового тупника Также написал функцию рисования сетки , обновление заметно это нерадует Нашел глупую ошибку в функции думаю почему умя все цвета почти синии если по пикселу рисовать ,а оказалось вводимое значение в функцию было char заместо int.
Вообщем результаты теже что у меня просто немного разные методы решения задачи Производительности нехватает, для такого дисплея мало AVRки. Кстати вывод сетки как сделан ? Я сделал заполнением областей цветом, так можно обойтись без циклов при рисовании пописксельно. У меня вообще оптимизация везде сделана до придела, может полностью на асм переписать ?
_________________ Where technology meets enjoyment.
Просто заливаю экран весь черным, потом рисую линии, но не попиксельно, а заполнением те тупо задал координаты X=0 y=174
и область толщиной в один пиксель залилась цветом. Но это в дисплее с контроллером ls020. Незнаю в Вашем дисплее будет такое или нет. Просто так получается быстрее и без дополнительных циклов. Кстати у себя в исходнике подредактируйте циклы, вычитание работает быстрее чем сложение.
Код:
for(s=176;s>0;s--)
Ну и другой цикл аналогично.
_________________ Where technology meets enjoyment.
Через АЦП AVR какую реально частоту пропустить? Мона попробать взять ченить типа atmega88 работает на 20Mhz затактировать от 30 , делать также 176 преобразований в ОЗУ и потом передавать через параллельный интерфейс или оно таво нестоит?
Мона посматреть на симейство "Xmega" хатя в продаже их невидел
Ну у мну на АВРке получаеся оцифровка сигнала до 15 Кгц. Но чтоб сигнал хорошо было видно надо как минимум скорость оцифровки в четыре раза больше. Да и вообще надо внешний АЦП, встроенный г*вно полное, шумов больно много. Надо делать экранный буфер, туда рисовать картинку, а потом сразу выводить на экран. Тогда фликера не будет и скорость оцифровки будет максимальная. Но под такой дисплей это как минимум 23 килобайта памяти при 256 цветах, при 16 бит цвете в два раза больше. Хмегу ставить нет смысла, стоит дороже арма, и корпус со 128 ногами, убогий интерфес к внешней памяти лучше АРМ со встроенной памятью 64 килобайта.
_________________ Where technology meets enjoyment.
Зарегистрирован: Вс мар 04, 2007 13:14:25 Сообщений: 375 Откуда: Украина
Рейтинг сообщения:0
akimov1987 писал(а):
это что, подскажите пожалуйста. по мне вроде это только питания дисплея
Это схема преобразователя для питания подсветки, преобразователь лог уровней, и крен на 3.3в для питания самого диспа. Можно обойтись без преобразователя уровней, только МК надо питать от 3.3v
Вчера немного посидел попробал производительность повысить ,подумал зачем весь экран после 176 преобразований перерисовывать. Сделал так каждое преобразование записываю в дисплей и в массив, вот после 176 преобразований делаю новое записываю в промежуточную переменную ,после читаю значение из массива закрашиваю нарисованную точку ,переписываю значение из переменой в массив и в дисплей. В этоге выигрываем в обновление но проигрываем в следующем преобразование…
Вчера немного посидел попробал производительность повысить ,подумал зачем весь экран после 176 преобразований перерисовывать. Сделал так каждое преобразование записываю в дисплей и в массив, вот после 176 преобразований делаю новое записываю в промежуточную переменную ,после читаю значение из массива закрашиваю нарисованную точку ,переписываю значение из переменой в массив и в дисплей. В этоге выигрываем в обновление но проигрываем в следующем преобразование…
Тоже побовал такой метод, не понравился по скорости оцифровки, легче весь дисплей очищать. Тут нужен экранный буфер, чтоб рисование было в памяти, а только потом отправлялось все на экран тогда флика не будет совсем. Я пока плюнул на попытки выжать еще производительности, жду ARM. Единственный способ получить производительности это написать все на асме, у меня даже есть один готовый проект под мегу64 и этот дисп, попробую подкрутить его мож получится.
_________________ Where technology meets enjoyment.
Если речь о том, какой код генерится компилятором, то есть более прямой способ ускорить выполнение инкремента - в случаях, когда значение счетчика до инкремента не используется, применять не постфиксный, а префиксный инкремент - это и по смыслу операции правильно, и время экономит.
Код:
for(s=0;s<176;++s)
Хотя, у каждого компилятора свои методы, замена инкремента на вычитание -1 - частый фокус, а CV Avr умеет оптимизировать неиспользуемый постфикс.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения