sample:=(sample+1) mod 100;
sinewave:=sin(sample*3.14159265/5);
这是10ms取样10次,就是1/100的正弦波.10ms定时周期程序,经常引起wd100ms错误.
IF t100ms.DN THEN
rsimu1[0]:=rsimu1[0]+1;
if rsimu1[0]>100 then
rsimu1[0]:=0;
end_if;
rsimu1[1]:=rsimu1[0]/100;
rsimu1[2]:=SIN(rsimu1[1]*3.14159265);
END_IF;
用来仿真斜坡,顺便半波正弦. 100ms定时, 100取样.
--------------------------------------------
要出正弦波, 一般两种方式: ao取样, pwm. 以上以ao为例.
输出是离散的, 根据取样定理, 至少需要2倍频率才能得到所需波形. 对离散还需要进行滤波整形处理.