Ср апр 19, 2017 17:37:07
Чт апр 27, 2017 18:16:42
Чт апр 27, 2017 18:47:28
Чт апр 27, 2017 19:02:12
Чт апр 27, 2017 19:27:25
Чт апр 27, 2017 20:03:07
АЦП же считывает данные через равные промежутки времени, тактируется от таймера, а при считывании из памяти ты успеваешь в эти промежутки времени? У меня такое ощущение, что плавает частоты опроса АЦП.Sergi писал(а):У микросхемы ad9280 есть вход 3state, им и рулю. Во время передачи из памяти в мк АЦП отключается, также и во время записи от цифровых входов.
Чт апр 27, 2017 20:18:02
Сб апр 29, 2017 16:58:57
Сб апр 29, 2017 19:43:37
Сб апр 29, 2017 20:03:22
Sergi писал(а): 3 - буфер IN заполняется по прерыванию от таймера,нормируются и разделяются в OUT и после каждого захваченного значения выводится буфер LCD в котором новое только одно значение по X.
Значения из внешней памяти в IN переносятся с прореживанием через 1,2,5,10...100 точек захвата. Из 65535 получаю 640 (65535/100=640+1535)
Сб апр 29, 2017 21:03:01
Сб апр 29, 2017 22:08:57
График перерисовывать точно не стоит после каждого захвата, или по 1 пикселю подрисовывать, или ждать пока побольше наберется, но график то не в прерывании рисуется? Даже если не успеть отрисовать весь график между прерываниями таймера 3, то он должен отработать нормально.Sergi писал(а):И вот здесь хотелось отрисовывать график попиксельно после каждого захвата, чтобы не замирал экран. А сейчас рисую постранично по 320 отсчетов весь буфер LCD. Могу пропустить захват и не перенести его из IN в OUT.
При таком способе точно джитер будет. ДМА есть в этом МК, если есть нужно его задействовать, это не дело в прерывании считывать.Sergi писал(а):TIM3 переключаю в режим прерываний и в прерывании захватываю данные с АЦП в массив IN. На частоте прерываний 3200 Гц и ниже я никак не пропущу софтовый захват.(или пропущу? может здесь и затык?)
Вс апр 30, 2017 08:14:58
Вс апр 30, 2017 08:52:38
Как раз когда ты считываешь черезх 10 значений то это эквивалентно снижению частоты АЦП в 10 раз, смысл от этого какой? А когда ты считываешь все 10 значений, а потом либо усредняешь, либо ищешь мин-макс это норм, антиалиасинг как минимум появляется, а сейчас у тебя его нет, хотя памяти много.Sergi писал(а):Можно и усреднять, только это будет эквивалентно понижению частоты тактирования АЦП. Можно попробовать.
Вс апр 30, 2017 09:03:20
Вс апр 30, 2017 10:16:48
Ну последовательный сойдет для этого тоже. Проверить чтобы уже точно считывание из памяти было корректным, так как рвет по оси времени, значит или считывание шагает с разным шагом или запись, вот это все нужно проверить отдельно. Считывание верификацией, а запись- можно частоты АЦП проверить и сравнить глубину записи, что именно 64к записалось скажем постоянное напряжение.Sergi писал(а):Теоретически писать могу, но произвольного доступа нет. Только последовательный.64к на канал из-за 16бит таймера TIM3,
Для этого для программной синхронизации нужно использовать всю внешнюю память в 64к, а не только кусок считанный из нее в 640 байт.Sergi писал(а):Устойчивая синхронизации если 1.5 - 2 и больше периодов сигнала на экране.
Вс апр 30, 2017 10:20:17
Вс апр 30, 2017 10:29:43
Вс апр 30, 2017 10:36:05