Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2010, 15:14   #1
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию ADSP2191 не линкуется проект

необходимо создать модель цифрового ревербератора. Из входного буфера берется входной сигнал - необходимо вычислить выходной сигнал. Выходной сигнал вычисляется следующим образом: буфер ревербератора состоит из 8000 отсчетов, на определенные ячейки буфера указывают 5 указателей - головка записи и 4 головки чтения. Каждая из головок чтения считывает сигнал из своей ячейки и умножает его на известный коэффициент. Все 4 таких произведения складываются между собой и прибавляются к сигналу со входа.
После этого в ячейку, на которую указывает "головка записи" записывается значение того же входного сигнала, но с учетом обратной связи (обратная связь идет с одной из головок). Затем головки сдвигаются, идет следующий цикл.

У меня пока получилось вот это:
Код:
#define Num_Rev  8000 //размер буфера ревербератора

.section/data data1;
.VAR/DM/CIRC reverb_buf[Num_Rev]; //объявляем циклический буфер ревербератора
.VAR/DM/CIRC buf_coef[5] = 0x199A, 0x08F6, 0x0127, 0x0021, 0x1333;//буфер коэффициентов ослабления для каждого отведения и для обратной связи
.VAR/DM in_buf[4] = 0x0125, 0x0085, 0x0999, 0x0453;//входные данные из АЦП
.VAR/DM out_buf [4];//выходной буфер ЦАП

.section/code program;
START:
I1=buf_coef;//I1 – указатель на буфер коэффициентов
M1=1;//шаг на 1
L1=LENGTH(buf_coef);

I2 = reverb_buf; //указатель на буфер ревербератора
M2=-1600; //шаг до следующей головки -1600
L2 = LENGTH(reverb_buf);

I0 = in_buf; //указатель на входной буфер
L0=0; //вх. буфер линейный
M0=1; //шаг на 1

M3=0;

DO	repeat UNTIL FOREVER; //зацикливаем все
MR1=DM(I0, M3); //считываем входной сигнал из АЦП и оставляем указатель I0 без изменений
MX0 = DM(I1,M1); //считываем коэффициент из буфера коэффициентов
MY0=DM(I2,M2); //считываем значение из ячейки, на кот. указывает соответствующая головка воспроизведения
CNTR=3; //организация цикла
DO slag UNTIL CE; 
slag: MR = MR+MX0*MY0(US), MX0 = DM(I1,M1), MY0=PM(I2,M2); //формирование результирующего сигнала на выходе
MR = MR+MX0*MY0(US);

I5 = out_buf; //указатель на выходной буфер
L5=0;
M5=1;
DM(I5,M5)=MR1; //записываем результат в выходной буфер

MR1 = DM(I0,M0); //читаем входной сигнал и инкрементируем I0 на 1 для чтения следующего значения из вх. буфера 
MX0 = DM(I1,M1); //читаем коэффициент для обратной связи
MR=MR+MX0*MY0(US); //формируем сигнал с учетом обратной связи и
DM(I2,M0+1) = MR1; //записываем этот сигнал в ячейку буфера ревербератора, при этом указатель перемещается в ячейку с 1-вой головкой воспроизведения.
repeat: MR1 = DM(I2,M0); //указатель инкрементируется на 1, что соответствует скольжению всех головок вправо на 1
start.end:
ассемблирование проекта проходит без ошибок. Но при линковке возникает какой-то страшный косяк:
Цитата:
[Error li2007] inconsistent architecture specifications AD90747 ADSP-2191
почему это? что Visual DSP от меня хочет?

Спасибо за внимание тем, кто осилил пост до конца...

Последний раз редактировалось Snejnaya; 24.11.2010 в 15:16.
Snejnaya вне форума Ответить с цитированием
Старый 24.11.2010, 16:37   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

это вроде из-за того, что нету файла архитектуры как его создать можно посмотреть на их сайте.
http://www.dsprelated.com/groups/adsp/show/1598.php
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где найти исходники на Java( 1 проект - больше 1000 классов, 2 проект - больше 100, 3 проект - больше 10) Pti44ka Общие вопросы по Java, Java SE, Kotlin 2 09.09.2010 21:31
Не линкуется код... Medwedxxx Win Api 4 25.07.2010 00:16
Проект lennon Общие вопросы по программированию, компьютерный форум 7 15.10.2009 00:30
Квадратное уравнение, программа не линкуется Dimoff80 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 16.04.2009 22:37
Проект на C# Etlau Помощь студентам 1 07.04.2009 22:10