Свежие обсуждения
Микроконтроллеры

Кто работал с DSK5402

1 2 6

Здравствуйте уважаемый просто я стараюсь но без Вашего примера не как не могу обойтись помогите с одним примером если можно исправить программу и выс. Обратно мне пожалуйста если вам это не трудно.
С уважением Пелинг.

 

На замечания ответьте.

 

1) Зачем вы в обоих прерываниях копируете оба буфера? В дма2инт вы приняли только один буфер, а копируете два. Также и в дма3инт.

2) Почему в дма3инт вы копируете 3 слова, а не 4?

3) Операции присваивания в основной программе обычно осуществляются через аккумы, прерывания их могут портить, так что надо принимать меры, я вам уже писал про это. То же самое касается флагов и т.п.
**************************************************************************************************************************************************
ответы:
Как мне объясняли при вхождение в прерывание приемного канала ДМА делается :
1) Производится копирования принятых данные из приемного буфера канала ДМА на промежуточный обрабатываемый буфер;
2) сразу же данные с буфера которой обработал проц. ( обработанные данные ) копируется на буфер передающего канала ДМА.
А по поводу ДМА 3 это отпечаток пошло извиняюсь.
насчет сохранений данных и состояний регистров в стек пробовал без результатно но когда я вам отправлял программу тогда все убрал .

 

peling: Как мне объясняли при вхождение в прерывание приемного канала ДМА делается :
1) Производится копирования принятых данные из приемного буфера канала ДМА на промежуточный обрабатываемый буфер

Это понятно

peling: 2) сразу же данные с буфера которой обработал проц. (обработанные данные) копируется на буфер передающего канала ДМА

А это-то зачем? Вы же его ещё не передали полностью.

Итак, переформулирую тот же вопрос: Зачем вы в прерывании дма2инт копируете оба буфера (и передающий и принимающий), а не один (принимающий)?

 

peling: 2) сразу же данные с буфера которой обработал проц. (обработанные данные) копируется на буфер передающего канала ДМА

А это-то зачем? Вы же его ещё не передали полностью.

Ну я думал что он уже успеет передать .
***************************************************************
Итак, переформулирую тот же вопрос: Зачем вы в обоих прерываниях копируете оба буфера (и передающий и принимающий), а не один (принимающий)?

Честно говоря вот эту часть я взял с примера там же и так было прописано я думал что при прирываний канал ДМА должен таким образом работать .

 

peling: 2) сразу же данные с буфера которой обработал проц. (обработанные данные) копируется на буфер передающего канала ДМА
GM: А это-то зачем? Вы же его ещё не передали полностью.
peling: Ну я думал что он уже успеет передать

Не успеет. Когда он передаст, возникнет прерывание дма3инт, там и надо копировать, а вы почему-то копируете в дма2инт. Кстати, какая у вас частота прерываний?

peling: Честно говоря вот эту часть я взял с примера там же и так было прописано я думал что при прирываний канал ДМА должен таким образом работать

А сейчас как думаете?

 

Частота прерываний 2 кГц
разрядность кодека 16 бит * частота дискритизации 8000 Гц = 128 кб/с /16 слово которое принимает McBSP /4 размер буфера ДМА = 2 кГц.

А сейчас думаю что не правильно работал но исправил как вы сказали как всегда с DRR11 читает а с DRR10 нет.

 

peling: А сейчас думаю что не правильно работал, но как всегда с DRR11 читает а с DRR10 нет.

Ну вот, приплыли! Вы ж недавно говорили, что с DRR10 читает: peling: В данный момент программа делает : считовает инфу с McBSP0 (DRR10, (DAA dsk5402)) и без не каких преобразований передает к McBSP1 (DXR11 (spec))

 

считовает инфу с McBSP0 (DRR10, (DAA dsk5402)) и без не каких преобразований передает к McBSP1 (DXR11 (spec))
*******
Извиняюсь я перепутал
По этому строку я хотел Вам сказать что программа должен был делать тоест считовать инфу от DRR10 и передовать в DXR11 а в данный момент программа работает но не считовать инфу от DRR10 и не передовать в DXR11 только считовает с DRR11и передает к DXR11 а (DRR10 ----> DXR11) не получается. С уважением Пелинг.

 

Ну, вы великий путаник. Скажите словами, что сейчас делает ваша программа? Читает с линии и передаёт на динамик? Или читает с микрофона и передаёт на динамик?