fpga发脉冲和stm32定时器发脉冲的区别,fpga很轻松的实现任意频率的脉冲发送,算法如下
脉冲的速度通过设置脉冲宽度来表示,例如23.5T(T为fpga的clk的时间),也就是说每23.5T,脉冲口就反转一次
我的verilog代码如下
always @(posedge clk)
begin
if(mem[13][0] == 1'b1)//轴使能位
begin
if(counter <
pwmsetreg)//如果小于设置的脉宽,则每脉冲累加一个
counter
<= counter+10000;//10000表示1.0000t,4位小数精度
else//大于设置的脉宽
begin
plusecnt <= plusecnt + 1;//脉冲计数+1
counter <= counter - pwmsetreg;//累计的脉宽时间=累计