Автоматизированные системыконтроля и управления РЭС, задания к контрольной и лабораторным работам, страница 22

   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... циклов)');