Kuzbass 0 24 марта, 2013 Опубликовано 24 марта, 2013 · Жалоба Создаю на основе отладочной платы TMSDSK5510 адаптивный фильтр, при этом кодек AIC23 настроен на прием 2-х аналоговых сигналов (т.е. работает в стерео режиме с разрядностью в 16 бит) и отправку одного (также 16 бит). Алгоритм получается довольно громоздкий, поэтому важен вопрос размещения кусков исполняемого кода между прерываниями приема и отправления сигнала кодеку. Подскажите пожалуйста прерывания (приём1-отсыл1-приём2-отсыл2-) устанавливаются через равные промежутки времени, или есть более долговременные периоды (например приём1-отсыл1-------------приём2-отсыл2---------). Т.е. где располагать основной кусок кода? :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 5 24 марта, 2013 Опубликовано 24 марта, 2013 · Жалоба Прием и передача будут идти парами. Но первая рекомендация - используйте DMA и затем прерывания от DMA по заполнению/опустошению половины буфера. В этом случае Вы существенно сэкономите на накладных расходах и получите довольно большой люфт при обработке прерываний. Будет существенно проще писать основную программу. И если будете потом делать собственную плату - не закладывайтесь на кодет AIC23 - он уже сильно устаревший. Сейчас есть AIC32 и его модификации 32хх - существенно лучше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 25 марта, 2013 Опубликовано 25 марта, 2013 · Жалоба Подскажите пожалуйста прерывания (приём1-отсыл1-приём2-отсыл2-) устанавливаются через равные промежутки времени, или есть более долговременные периоды (например приём1-отсыл1-------------приём2-отсыл2---------). Т.е. где располагать основной кусок кода? :laughing: Зачем у вас такая жёсткая привязка? По-моему должен быть обработчик ISR DMA привязанного к McBSP, который принимает блоки сэмплов от DMA/ставит на передачу блоки в DMA и пингует задачу, обрабатывающую входной поток блоков сэмплов и генерящую выходной поток. Это может быть либо фоновая задача, либо задача запускаемая от этого ISR. Задача обработки это должен быть простой цикл, который смотрит - если есть данные во входном буфере - обрабатывает их и кладёт в выходной буфер, если нет данных - может перевести проц в idle или освободить время для другой задачи. Групповая задержка сигнала будет зависеть от глубины буферизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться