求大神帮忙看看这个PWM控制LED输出的哪里出错误了啊

2019-03-25 07:36发布

就开关3能用--。其他都出不来

module pwm_top(
input clk,rst,
input sw1,sw2,sw3,sw4,sw5,
output pwm
    );
   
reg [15:0]cnt;
reg [5:0]duty;
reg [15:0]count;
reg clk_div;
reg pwm;
always@(posedge clk or posedge rst)
if(rst)begin
count<=0;clk_div<=0;
end
else if(count==50000)begin
clk_div<=~clk_div;count<=0;
end
else count<=count+1;

always@(posedge clk_div or posedge rst)   
if(rst)begin
pwm<=1;
duty<=0;
end

else begin

if(duty<=20)
duty<=0;
else
duty<=duty+1;

if(sw1)begin
if(duty<4)
pwm<=0;
else
pwm<=1;
end

else if(sw2)begin
if(duty<8)
pwm<=0;
else
pwm<=1;
end

else if(sw3)
pwm<=~pwm;

else if(sw4)begin
if(duty<16)
pwm<=0;
else
pwm<=1;
end

else if(sw5)
pwm<=0;

else
pwm<=1;

end


endmodule
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
5525
2019-03-25 12:22
< / 至少花了10分钟才把你的代码,整理能看了.下次能把代码整理好了 附件贴上来吗。

按照你代码的意思,
sw1,2,3,4,5 是用来选择模式,那就直接用case 好了

恭喜你,找了了 提高点 clk_div 不可以当时钟用,
你这个代码里面,有且只有一个时钟 就是 clk

一周热门 更多>