writeln('Длина реализации: N=', n);
writeln('Число периодов на длине реализации: p=', p);
writeln('Коэффициент деления таймера синтезатора: Кс=', Kc);
writeln('Коэффициент деления таймера АЦП: Ка=', Ka);
arg:=0; step:=2*PI*p/n;
writeln('');
writeln('Тип сигнала-синус');
writeln('Сменить тип сигнала на меандр?(Y/N)');
readln(ts);
for i:=1 to n do
begin
signal2_[i]:=round((AMPy/10.24)*cos(arg)*S_BIN)+S_NUL;
if ts='y' then
begin
if signal2_[i]>=S_NUL then signal2_[i]:=round((AMPy/10.24)*S_BIN)+S_NUL
else signal2_[i]:=-round((AMPy/10.24)*S_BIN)+S_NUL;
end;
arg:=arg+step;
end;
{ установить в первом отсчете разряд D12 }
{ для возможности синхронизации пуска }
{ АЦП с началом выводимой реализации }
signal2_[1]:=signal2_[1] or (S_BIN+1);
{ инициализация модуля }
InitBoard;
{ установка частоты дискретизации: }
Init53(Ka,Kc,4);
clrscr;
writeln('Для продолжения нажмите клавишу "ввод"');
{ программирование контроллера ПДП: }
{ передача по требованию, увеличение адреса, }
{ автоинициализация, вывод на внешнее устройство }
errno:=dma_setup(DMA_O_CHAN,addr(signal2_),n shl 1,
DMA_SINGLE or DMA_INC or DMA_AINIT or DMA_WRITE);
if errno<>0 then
begin
writeln('Ошибка инициализации ПДП.');
writeln('Номер ошибки ',dma_errno);
goto Exit;
end;
{ разрешить запрос ПДП от синтезатора }
SetDRQ2(1);
{ разрешить работу канала 1 таймера }
SetET1(1);
{while not keypressed do; }
readln;
{ измерение с синхронизацией от сигнала, }
{ выводимого на ЦАП; }
{ при ошибке программирования контроллера }
{ функция возвращает ненулевое значение }
Writeln('Введите задержку ввода(0,1,2,3... циклов)');
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.