PWM中心值计数
<div class='showpostmsg'><h1>中心值计数PWM</h1><p > 中心值计数示意图,如下所示。</p>
<p align="center" > </p>
<p align="center" >上PWM和下PWM最大差一个大的周期</p>
<h2 >电路实现描述:</h2>
<p > 设:从O -> A 要计数512</p>
<p > 从 O -> B要计数1024</p>
<p > 问:当占空比设置为30%时候,OA与OB的计算方法</p>
<p > 此时OA的占空比为512*30%=153,因为前面一段是空的,所以0~(512-153)是低电平,并且512~512+153是高电平。高电平结束后就低电平,持续到1024,从此开始B~D的中心值计数。</p>
<p > 参考代码</p>
<pre>
<code>//Center Value Counter
//定义PWM分辨率
`define PWM_Resolution10
//定义PWM的中位值
`define HalfCounter 512
module PWM (
inputwire clk,
input wire rstn,
//设置输入占空比
input wire [`PWM_Resolution-1:0] duty,
//输出占空比引脚
output reg dout
);
//定义PWM_resolution的Counter
reg [`PWM_Resolution-1:0]Counter;
//Dutyl临时存放地址
reg [`PWM_Resolution-1:0]Duty_temp;
//初始化Counter和dout
initial begin
dout<=1'b0;
Counter<=0;
Duty_temp<=0;
end
//每次时钟到来Counter+1 并且将duty 赋值给DUTY_TEMP
always @(posedge clk or negedge rstn) begin
if (!rstn) begin
Counter<=0;
Duty_temp<=0;
end
else begin
//Counter+1
Counter<=Counter+1'b1;
//Duty分成一半
Duty_temp<=duty/2;
end
end
always @(posedge clk or negedge rstn) begin
if (!rstn) begin
Counter<=0;
end
//在Counter小于1/2时候
else if (Counter<`HalfCounter) begin
if (Counter<(`HalfCounter-Duty_temp)) begin
dout=1'b0;
end
else
dout=1'b1;
end
//在Counter大于1/2时候
else begin
if (Counter<(`HalfCounter+Duty_temp)) begin
dout=1'b1;
end
else
dout=1'b0;
end
end
endmodule //PWM</code></pre>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>这样计数的主要应用是哪方面?</p>
秦天qintian0303 发表于 2022-12-9 13:23
这样计数的主要应用是哪方面?
<p>整着玩的</p>
秦天qintian0303 发表于 2022-12-9 13:23
这样计数的主要应用是哪方面?
<p>push pull 架构是可以用,但是要配合其他代码</p>
<p>过去,都是是在系统计算的时候,算出来适应范围的,这下好了,直接软件计算,不过,你确定硬件一次回路的参数的调节窗口不需要计算么?</p>
lihuanyang 发表于 2022-12-10 18:11
过去,都是是在系统计算的时候,算出来适应范围的,这下好了,直接软件计算,不过,你确定硬件一次回路的参 ...
<p>这只是一个part</p><br/> 未来ic 发表于 2023-2-18 14:45
学习了,eeworld,内容很不错,非常好,对技术成长和视野的拓宽起到了不可替代的作用。
<p>感谢你的捧场</p><br/>
页:
[1]