09.08.2017, 21:30
|
|
Прописка
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Сообщение от verdana
|
А статья в википедии, это далеко не знания,
о-о-очень далеко.
Ну как до Киева в позе членистоногого.
|
Согласна куда мне до Вас по знаниям.
Сообщение от hacker7
|
При слове DMA у программиста начинается мандраж
|
У меня не начинается. Именно DMA и использую. По таймеру (по обоим фронтам)два каннала DMA складывает в два массива результаты измерений. Как только массивы заполнятся - прерывание, сигнализирующее что данные готовы. Далее рисуй себе на дисплее.
Сообщение от Akkord
|
Но кто про что.. а я все про своЁ - т.е. про фигуры Лиссажу.
Они родимые, и есть амплитудно-фазовое отображение взаимоотношения двух сигналов...
Причем - мгновенное...
|
Ну все убедили лиссажу намного лучше!
Только вот мне это не нужно. В двух словах: После ремонта servovalve, внутри которого и есть этот LVDT, нужно убедиться что ремонтник правильно провода припоял на разъем перед сборкой и ВСЕ! Процедура проверки простая - черз servovalve пропускается 8 mA на контакт под номером "1" плюс, на контакт "2" минус. У этого LVDT перемещение меньше миллиметра. Мне не важно знать на сколько он переместился. Гораздо важнее направление. И рисунок в инструкции иллюстрирует как должны выглядеть две синусоиды. in phase если контакт 1(+) контакт 2 (-) и out of phase если наоборот. И выглядят они примерно так см вложение.
Теперь по существу, почему вчера ничего не получалось, казалось бы в простом цикле? Оказалось все просто. Получив массив данных я начинала искать условие триггера не остановив таймер, который продолжая работать заставлял DMA исправно ложить данные в массив. Как итог, когда дело доходило до отрисовки, данные в массиве были уже другие. И самое противное что Keil в Watch этого не показывал.
И снова NewWriter оказался прав. Синусоида немного дрожит, кроме того нужно игратся со слоями дисплея, поскольку заметно что по нему бегут темные полосы, как в старом телевизоре... Буду ковырять дальше.
|
|
|
|
09.08.2017, 22:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Для устранения дрожания нужно вводить гистерезис. Как вариант: после прохождения уровня синхронизации смещать порог на несколько единиц вверх-вниз и возвращать его обратно при обратном проходе. Впрочем это вариант я использовал для аппаратного формирования синхро сигнала из последовательности отсчетов АЦП.
Цитата:
|
заметно что по нему бегут темные полосы, как в старом телевизоре.
|
Это эффект от интерференции развертки ЖКИ и вывода с процессора. В регистрах контроллера ЖКИ есть возможность отслеживать обратный ход. Можно пробовать привязать вывод к этому сигналу.
Для улучшения стабильности картинки можно увеличить частоту дискретизации в 8 раз (до 640кГц) и после нахождения синхрособытия выводить на экран среднее значение из 8 отсчетов.
__________________
misterdi<@>i.ua
Последний раз редактировалось MisterDi; 09.08.2017 в 22:36.
|
|
|
|
10.08.2017, 05:00
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Алгоритм простого осцилографа
TE - Tearing Effect - сигнал с дисплея о достижении разверткой дисплея невидимой области и по этому сигналу можно начинать обновление дисплея.
И еще момент - если используете SDRAM для хранения буферов слоев, то при двух слоях и таких размерах дисплея можете иметь ограничение по скорости. Тут рядом была тема про дисплей и SDRAM, я там приводил ссылку на интересный такой документ...
С фигурами Лиссажу будет другая, неочевидная сразу, беда. Форма фигуры зависит не только от фазы между сигналами, но и от соотношения их амплитуд.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
10.08.2017, 06:22
|
|
Прописка
Регистрация: 26.10.2011
Сообщений: 122
Сказал спасибо: 53
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Сообщение от NewWriter
|
Тут рядом была тема про дисплей и SDRAM, я там приводил ссылку на интересный такой документ...
|
Документ действительно интересный, нужно будет изучить.
У меня тут идея возникла и я провела эксперимент, суть вот в чем:
Алгоритм обновления дисплея следующий
1) Очислили BSP_LCD_Clear(LCD_COLOR_BLACK);
2) Установили цвет BSP_LCD_SetTextColor(LCD_COLOR_LIGHTYELLOW);
3) В цикле из 800 интераций нарисовали синусоиду BSP_LCD_DrawLine(X1pos, Y1pos, X2pos, Y2pos); // Рисовать линией красивее получается чем по пикселям
Аналогично нарисовали вторую синусоиду.
Что произойдет если закоментировать строчку очистки дисплея - Правильно каждое новое обновление накладывается на старое, в результате синусоиды, из-за шума, становятся все толще и жирнее. НО! ничего не дергается и бегущих темных полос нет! Все идеально стабильно.
Вот и возникла идея, а что если вместо очистки дисплея нарисовать черным цветом (под цвет фона) две синусоиды по предыдущим данным? В итоге эти черные синусоиды наложаться в точности поверх старых, экран сделается черным и рисуй себе заново. Сказано - сделано. Дисплей действительно типо очищается и даже идеально работает по шагам. На реальной скорости дрожание и полосы тут как тут. Эксперимент не удался, но вопрос остался - почему же все идеально, если дисплей не очищать, да я его и не очищала во время эксперемента. Вообщем нужно учить мат часть
Последний раз редактировалось Jane9226; 10.08.2017 в 06:31.
|
|
|
|
10.08.2017, 10:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2008
Сообщений: 712
Сказал спасибо: 302
Сказали Спасибо 409 раз(а) в 264 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Сообщение от Jane9226
|
Только вот мне это не нужно. В двух словах: После ремонта servovalve, внутри которого и есть этот LVDT, нужно убедиться что ремонтник правильно провода припоял на разъем перед сборкой и ВСЕ!
|
Так это два светодиода.... и триггер...
|
|
|
|
10.08.2017, 10:58
|
|
Заблокирован
Регистрация: 16.03.2005
Сообщений: 5,918
Сказал спасибо: 560
Сказали Спасибо 9,145 раз(а) в 2,892 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Сообщение от Akkord
|
Так это два светодиода.... и триггер...
|
Это слишком просто....
Вы так дойдёте до того, что фазу в розетке
будете неонкой определять.
А "умище" куда девать?
Зря что ли человек код писать учился?
|
|
|
Эти 3 пользователя(ей) сказали Спасибо verdana за это сообщение:
|
|
|
10.08.2017, 12:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Цитата:
|
почему же все идеально, если дисплей не очищать, да я его и не очищала во время эксперемента.
|
Т.к у Вас сигнал практически один и тот же, при отсутствии очищения вы видите не только полезный сигнал, но и шумы АЦП которые при единичном отображении глазу не заметны.
Вариант с перерисовкой "старых" синусоид цветом фона работает быстрее чем полная очистка экрана поэтому мерцание становится не заметным.
Можно попробовать выводить картинку не по окончанию приема данных, а с фиксированным интервалом например 20мС
__________________
misterdi<@>i.ua
Последний раз редактировалось MisterDi; 10.08.2017 в 12:37.
|
|
|
|
10.08.2017, 13:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2008
Сообщений: 712
Сказал спасибо: 302
Сказали Спасибо 409 раз(а) в 264 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Сообщение от verdana
|
А "умище" куда девать?
Зря что ли человек код писать учился?
|
Угу! Да еще на ARM...
|
|
|
|
10.08.2017, 14:32
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,169
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Jane9226, конечно извиняйте, но уж очень похоже на тяжёлое комсомольское прошлое - сначала в поте лица создаём проблему, а потом героически ее преодолеваем.
Для одноразового использования городить такое
А просто взять (даже на прокат) нормальный двухлучевой осциллограф и закрыть вопрос с проверкой?
А академическим вопросом уже потом можно заняться, в свободное от безделья время .
Ну и я уже писал про множество проектов осциллографов - там немало с открытым кодом и можно посмотреть на исходники. Тут не обязательно совпадение среды/железа. Главное понять алгоритм, а воспроизвестиего можно и не только copy-paste .
PS Если использовать два буфера - старый и новый, то можно сразу рисовать Без стирания, фоном - старое, цветом - новое. Такой подход ещё на CGA позволял со снегом бороться.
Akkord, лучше один - красный, для неверного варианта .
verdana, каюсь, грешен - неонка всегда в кармане .
Старый монах со своей бритвой как всегда прав
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 10.08.2017 в 14:36.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо mike-y-k за это сообщение:
|
|
|
10.08.2017, 14:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2008
Сообщений: 712
Сказал спасибо: 302
Сказали Спасибо 409 раз(а) в 264 сообщении(ях)
|
Re: Алгоритм простого осцилографа
Сообщение от mike-y-k
|
Akkord, лучше один - красный, для неверного варианта .
|
Правильно!
Но можно "попробовать" использовать для этого дисплей - просто красный фон!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:23.
|
|