[an error occurred while processing this directive]
Опаньки! 2185N Любителям грабель... (Циркулярный массив с размером не равным степени двойки)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Дима_П 12 января 2004 г. 20:47

//Простой генератор - загрузить два значения из таблицы, размером 562
//слова (не степень двойки, естественно), сложить, запомнить:
//(i1 - текущие указатели, i3 - output)

generator:
l6 = 562; //размер таблицы
l7 = l6; //

m0 = 1;
m2 = 0;
m3 = -1;

ay0 = dm(i1,m0); //текущий адрес 1
ay1 = dm(i1,m3); //текущий адрес 2
i6 = ay0;
i7 = ay1;

m4 = 28; //шаг 1
m5 = 44; //шаг 2

modify(i3,m3); //rewind back
ar = dm(i3,m2); //read value to write it back

cntr = 20; //размер буфера
do gen_0 until ce;
ax0 = dm(i6,m4); //прочитали первое значение
ay0 = dm(i7,m5); //прочитали второе значение

sr0 = 0; //!!!! Без такой или подобной команды
//не работает!!! NOP не прокатывает :-(

gen_0: ar = ax0 + ay0, dm(i3,m0) = ar; //посчитали сумму
//сохранили предыдущее

dm(i3,m0) = ar; //сохранили последнее
ay0 = i6; //сохранили указатели
ay1 = i7;
dm(i1,m0) = ay0;
dm(i1,m0) = ay1;
rts; //все

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru