[an error occurred while processing this directive]
|
В общем, я тока начал заниматься DSP - вторая неделя пошла, так что прошу за тупые вопросы не ругаться ;) И так, суть:
На этом ките и ацп и цап отображаются в память по одному и тому-же адресу, но проблема не в этом, а вот в чем: при работе в dma режиме нам надо выставлять DMARequest каждый раз, когда нам нужна новая пара выборок, при этом, первое чтение или запись после dmareq - будет для левого канала, а второе / чтение запись - для правого. Тоесть можно сделать, например вот - так: Dmareq - читаем левый канал, пишем левый канал, читаем правый канал, пишем правый канал. Как вы знаете, у данного проца (tigersharc) есть DMA Chaining(помойму так ;) ) Суть моей проблемы такова: я хочу в дма режиме считать N выборок с ацп, используя dma chaining, затем получившийся набор выборок обработать, и выплюнуть на цап, при этом параллельно заполняя новый набор выборок с АЦП. Тоесть, для безопасности, можно использовать 4 буфера - 2 на вход, 2 - на выход, хотя, может быть , можно и обойтись двумя буферами, но суть - не в этом. Я делаю так: с помощью dma-chaining постоянно читается то первый буфер, то второй. После заполнения буфера чтения(конец режима dma) - софтовый int, выставляю флаг, вернее переменную, которая означает, какой буфер сейчас заполнен, а программа просто отслеживает эту самую переменную и соответственно считает или первый буфер или второй и в конце подсчета в режиме dma выплевывает буфер на цап. Так вот суть проблемы: даже если выходной буфер=входному, на выходе просто толпы шумов. Насколько я понял, это связано с тем, что я не делаю dmarequest. Но если делать dmareq - то толку от работы dma chaining не будет - придется все время следить за работой дма, постоянно подсовывать ему dmar и т.д. К тому-же (не пинайте меня за столь банальный и дурной вопрос ;) ) что будет, когда по одному дма каналу будет вестись чтение с выставлением dmar через один отсчет, а по другому дма каналу - запись - и тоже - выставление dmar. Вообщем, труба ;) А разобраться все-таки хочется - вот и решил у гуру спросить совета, тока не пинайте, за тупой вопрос.
E-mail: info@telesys.ru