15.05.2018, 12:15
|
#11
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: синхронизация осциллограммы
Так нормально. Вывод только переделать нормальный на экран и все. Там как-то по корявому у Вас мне кажется(- последний for).
Еще, как вариант, можно искать положительный перепад так. Как-бы ось X вправо, ось Y - вверх. Берутся 2 соседние точки и смотри перепад(разница) по Y. Если она большая, т.е. больше какого-то порога - значит это перепад.
Ну или между несколькими точками смотреть, например, 5, 12 или 15 точек.
Проверьте также, чтобы в буферах были данные. А то может у Вас там пусто вообще. Одни нули.
Последний раз редактировалось Signalshik2; 15.05.2018 в 12:20.
Причина: Добавил фразу.
|
|
|
|
15.05.2018, 12:25
|
#12
|
Временная регистрация
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: синхронизация осциллограммы
Signalshik2, Ничего не понял.
Сообщение от фёдорыч Посмотреть сообщение
Код:
DataTFT[i] = 200 - DataBuf[rise]*200/256;
- а вот это что означает?
DataBuf[rise]*200/256 - отсчет преобразованный для вывода на экран.
200- координата y, дисплей 320х240, поле вывода 320х200, ориентация дисплея альбомная, начало координат левый верхний угол. То есть если не писать (200 - и т.д) осциллограмма рисуется из левого ВЕРХНЕГО угла).
Описку исправил, изменений нет.
|
|
|
|
15.05.2018, 12:29
|
#13
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: синхронизация осциллограммы
А, ну теперь, понял, спасибо. Так отладчик-то есть или нет? Может у Вас АЦП или DMA не работает? У Вас железная плата? Какое устройство, если не секрет?
|
|
|
|
15.05.2018, 12:49
|
#14
|
Временная регистрация
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: синхронизация осциллограммы
IDE - Atollic True Studio for STM, отладчик ST-Link V2, не свисток, со свистком я намучился, как раз Atollic и не желал с ним работать. Платка куплена на Али, я с ней уже пол-года развлекаюсь. Камень 100-ножечный STM32F407VET6.
Пошагово выводится картинка с меандром, но почему-то один раз и усе, может куда-то программа улетает, у меня никаких обработок ошибок пока не предусмотрено.
А на счет кода примера - так он специально и прикреплен к SPL для изучения и освоения так сказать. Я все с AVR возился, а тут прикупил DSO068, собрал, поплевался и решил свой осциллоскоп сварганить на STM.
Последний раз редактировалось фёдорыч; 15.05.2018 в 13:05.
|
|
|
|
15.05.2018, 13:47
|
#15
|
Вид на жительство
Регистрация: 11.08.2015
Сообщений: 408
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
|
Re: синхронизация осциллограммы
Сообщение от фёдорыч
|
отладчик ST-Link V2
|
- с помощью этого отладчика можно посмотреть переменные, когда посмотреть переменные, когда программа застопорена. Если можно, то посмотрите, что в буферах лежит. Корректные ли там данные?
|
|
|
Сказали "Спасибо" Signalshik2
|
|
|
15.05.2018, 13:53
|
#16
|
Временная регистрация
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: синхронизация осциллограммы
Сообщение от индюк
|
ну я исходил из того что наверно у человека маленькая плата гшде все и сразу собрано. по аналогии с китайцами.
поэтому я имел ввиду что компаратор мониторит аналоговый тракт и дает на отдельную ногу проца импульс. мошт на прерывание даже.
причем там компорт?? нигде про него у автора не увидел
|
Вообще-то хотел отслеживать сигнал в режиме AnalogWatchDog и затем выводить данные на дисплей. Но пошел проторенной дорожкой - может еще вернусь к этой идее.
|
|
|
|
15.05.2018, 14:09
|
#17
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,727
Сказал спасибо: 130
Сказали Спасибо 1,111 раз(а) в 530 сообщении(ях)
|
Re: синхронизация осциллограммы
Нужно смотреть отладчиком. Возможно ДМА отработало только один цикл. Смотри внимательно настройки ДМА и АЦП.
И ... почему обработку стартуем по заполнению половины буфера? Надеемся на то, что данные в буфер придут раньше чем программа их прочитает?
|
|
|
|
15.05.2018, 14:19
|
#18
|
Временная регистрация
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: синхронизация осциллограммы
Сообщение от Signalshik2
|
- с помощью этого отладчика можно посмотреть переменные, когда посмотреть переменные, когда программа застопорена. Если можно, то посмотрите, что в буферах лежит. Корректные ли там данные?
|
Этим сейчас и занимаюсь - смотрю ADC_Data.
"Меня мучат смутные сомнения"(с), что как-то некорректно забираются оттуда данные. Я ведь назначил размер ADC_Data в 512 полуслов а читаю только первую половину.
Сбрасываю флаг половины передачи - а он сбрасывается? Буду копать.
А насчет поиска по двум и более отсчетам я думал над этим.
При двух отсчетах можно поймать помеху и принять ее за фронт.
По условию нам неизвестно:
1. амплитуда
2. сдвиг по уровню
3. частота тестируемого сигнала.
Получается, что только проанализировав весь буфер, можно ответить на эти вопросы.
|
|
|
|
15.05.2018, 14:38
|
#19
|
Временная регистрация
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: синхронизация осциллограммы
Сообщение от DanilinSA
|
Нужно смотреть отладчиком. Возможно ДМА отработало только один цикл. Смотри внимательно настройки ДМА и АЦП.
И ... почему обработку стартуем по заполнению половины буфера? Надеемся на то, что данные в буфер придут раньше чем программа их прочитает?
|
Ход мысли был такой: DMA выставляет флаг завершения передачи буфера и тут же перезагружается для новой передачи (установлен CONT), затирая данные в начале буфера. Чтобы избежать этого (и пока ничего не менять в коде примера, который был выбран для обучения) данные забираются только из мл. половины буфера.
|
|
|
|
15.05.2018, 15:09
|
#20
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,727
Сказал спасибо: 130
Сказали Спасибо 1,111 раз(а) в 530 сообщении(ях)
|
Re: синхронизация осциллограммы
Разберись с АЦП! и c DMA! Что происходит при заполнении буфера? При заполнении буфера ДМА встает.
Как отрисовал кривую - нужно перезапустить ДМА. И тогда тебе будет следующая порция данных в буфер.
И вообще, ждать в бесконечном цикле события - потенциально неправильно.
Есть контроллер прерываний. И ДМА, и АЦП прекрасно могут дергать его линии. И можно хорошо распределить работу. Например одновременно ДМА тащить данные от АЦП, а ядро в этот момент будет обсчитывать/рисовать данные предыдущего цикла измерений.
А у тебя сейчас пока ДМА не отработает - ядро крутится в пустом цикле ожидая событий.
|
|
|
Сказали "Спасибо" DanilinSA
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:50.
|
|