⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wave.tdf

📁 在MAX-PLUS下设计的函数消耗发生器
💻 TDF
字号:
include "sin.inc";
subdesign wave
(inclk,mode[1..0],inb[7..0]:input;
da[7..0],cs:output;
)
variable
fp[7..0],f:dff;
st:dff;
da[7..0]:dff;
md[8..0]:dff;
msin:sin;
begin
(fp[],f).clk=inclk;        --将inclk分频输出f,输入inb[]控制分频系数
if fp[]>=inb[] then
fp[]=0;f=!f;
else
  fp=fp+1;f=f;
end if;
cs=gnd;
da[].clk=f;
md[].clk=f;
	st.clk=f;
case mode[] is             --通过输入mode[1..0]控制输出波形
when 0=>                   --产生一个锯齿波
da[]=da[]+1;
when 1=>                   --产生一个三角波
    case st is
    when gnd =>
         if da[]==255 then
         da[]=da[];st=vcc;
         else
         da[]=da[]+1;st=gnd;
         end if;
    when vcc=>
         if da[]==0 then
         da[]=da[];st=gnd;
         else
         da[]=da[]-1;st=vcc;
         end if;
    end case;
when 2=>                  --产生一个方波
    case st is
    when gnd=>
    da[]=da[];
    if md[]>=255 then
    md[]=0;st=vcc;
    else
    md[]=md[]+1;st=gnd;
    end if;
   when vcc=>
    da[]=!da[];
    end case;
when 3=>                  --产生一个正弦波
  msin.inclk=f;msin.add[]=md[];da[]=msin.q[];
  if md[]==255 then
     md[]=0;
  else
    md[]=md[]+1;
  end if;
end case;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -