readln(zz);
for i:=1 to zz+1 do
{errno:=MeasDMA(n+1,addr(signal1_),DSYNC,DMA_I_CHAN,ovf);}
Meas(n,addr(signal1_),RUN,ovf);
{ запретить запрос ПДП }
SetDRQ2(0);
{ запретить работу канала 1 таймера }
SetET1(1);
if errno<>0 then
begin
textcolor(4);
writeln('Ошибка инициализации ПДП.');
writeln('Номер ошибки ',dma_errno);
textcolor(2);
goto Exit;
end;
{ вывод считанного сигнала }
signal2_[1]:=signal2_[1] and S_BIN;
gr1;
{ Обработка считанного сигнала }
m3:clrscr;
Km:=trunc(n/(2*p*(Ka/Kc)));
writeln('Максимальный номер гармоники Km=',Km);
writeln('Введите начальный номер гармоники');
readln(k);
writeln('Введите конечеый номер гармоники(не более',Km,')');
readln(k1);
writeln('Подтвердить?(Y/N)');
readln(ts);
if ts='n' then goto m3;
if k1>=Km then k1:=Km;
clrscr;
writeln('Номер гармоники Амплитуда Фаза');
writeln('');
step:=2*pi*p*(Ka/Kc)/n;
t:=0;
for j:=k to k1 do
begin
Xre:=0;
Xim:=0;
for i:=1 to n do
begin
Xre_[i]:=signal1_[i]*cos(step*(i-1)*j);
Xre:=Xre+Xre_[i];
Xim_[i]:=signal1_[i]*sin(step*(i-1)*j);
Xim:=Xim+Xim_[i];
end;
norm:=A_SCALE/A_BIN;
Xm:=(2/n)*sqrt(sqr(Xre)+sqr(Xim))*norm;
if Xre=0 then
begin
if Xim>=0 then fi:=pi/2
else fi:=-pi/2;
goto exit;
end;
fi:=arctan(Xim/Xre);
if fi>0 then
begin
if Xre<0 then fi:=fi+pi
end;
if fi<0 then
begin
if Xre>0 then fi:=fi+3*pi/2
else fi:=fi+pi/2;
end;
fi:=fi*180/pi;
if t=20 then begin t:=0;
textcolor(2);
writeln('');
writeln('Для продолжения нажмите клавишу "ввод"');
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.