[an error occurred while processing this directive]
Ответ: вот реализация
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено PILOTIK 15 августа 2002 г. 12:14
В ответ на: надо реализацию глянуть отправлено Пан спортсмен 15 августа 2002 г. 11:59

LdS Ecc,VelINTLL; Загрузим Интеграл DeltaV [Hcc::Ecc]
LdS Fcc,VelINTLH;
LdS Gcc,VelINTHL;
LdS Hcc,VelINTHH;

LDIW ZL,ZH,VelArray;
LdS Acc,VelNum;
SubI Acc,-4;
StS VelNum,Acc;
Add ZL,Acc; Загрузим указатель на 64-ое значение DeltaV
AdC ZH,Zero;
Ld Acc,Z+; Загружаем последнее VelDelta из FIFO
Ld Bcc,Z+;
Ld Ccc,Z+;
Ld Dcc,Z;
Sub Ecc,Acc; Вычитаем из интеграла дельту64 в массиве
SbC Fcc,Bcc;
SbC Gcc,Ccc;
SbC Hcc,Dcc;

LdS Acc,VelDeltaOldLL; Загружаем текущую Дельту [Dcc::Acc]
LdS Bcc,VelDeltaOldLH;
LdS Ccc,VelDeltaOldHL;
LdS Dcc,VelDeltaOldHH;
Add Ecc,Acc; Прибавляем текущую Дельту
AdC Fcc,Bcc;
AdC Gcc,Ccc;
AdC Hcc,Dcc;
St Z,Dcc; Запоминаем текущую Дельту в массиве
St -Z,Ccc;
St -Z,Bcc;
St -Z,Acc;
StS VelINTLL,Ecc; Запоминаем новый интеграл
StS VelINTLH,Fcc;
StS VelINTHL,Gcc;
StS VelINTHH,Hcc;

BST Hcc,7; Если отрицательный интеграл, то устанавливаем "T"
LSL Ecc; Делим новый интеграл на 64
RoL Fcc;
RoL Gcc;
RoL Hcc;
LSL Ecc;Ecc освободился!!!!!!!!!!!!
RoL Fcc;
RoL Gcc;
RoL Hcc;
Add VccLL,Fcc; Суммируем с Delta
AdC VccLH,Gcc;
AdC VccHL,Hcc;
BrTC T0OvfL3; Если "-" число то
LdI Ecc,$FF;
AdC VccHH,Ecc;
RJmp T0OvfL4;
T0OvfL3: AdC VccHH,Zero;

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

Ответы



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

E-mail: info@telesys.ru