专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
用FPGA做频率为50hz的电压采集
2019-03-25 08:08
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
FPGA
18606
12
1708
用FPGA做频率为50hz的电压采集,刚开始能显示采集到电压值和采集的电压频率为50hz,上电一段时间(几个小时)后,电压值正常,但是频率采集不到了,变为了0,请问大侠们这是什么原因啊?急用!!! 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
yuechenping
2019-03-25 22:20
chenzhufly 发表于 2014-4-16 12:51
频率的处理算法是否有问题啊
频率算法是:
module freq(
input f_in,
input f_start,
// output reg f_end,
output reg [15:0] freq_datah16,
output reg [7:0] freq_datal8,
output reg freq2_rate_state, //added 101015
input clk_f //100623: clock : 10Mhz
);
//-----------------freq_measure fsm------------------------------
reg [23:0] freqcount = 0;
parameter st0 = 0;
parameter st1 = 1;
parameter st2 = 2;
parameter st3 = 3;
parameter st4 = 4;
parameter st5 = 5;
parameter st6 = 6;
parameter st7 = 7;
parameter st8 = 8;
reg [3:0] state = st0;
//added 101019
reg [23:0] f_mea_cnt;
always@( posedge clk_f )
begin
case (state)
st0 : begin //idle
if(f_start)
state <= st1;
else
state <= st0;
freqcount <= 0;
freq_datah16 <= 0;
freq_datal8 <= 0;
freq2_rate_state <= 0;
end
st1 : begin
if(!f_in)
state <= st2;
else if (f_mea_cnt >= 300000)
state <= st6;
else
state <= st1;
freqcount <= 0;
f_mea_cnt <= f_mea_cnt + 1;
end
st2 : begin
if( f_in )
state <= st3;
else if (f_mea_cnt >= 300000)
state <= st6;
else
state <= st2;
freqcount <= freqcount +1;
f_mea_cnt <= f_mea_cnt + 1;
end
st3 : begin
if(!f_in)
state <= st4;
else if (f_mea_cnt >= 300000)
state <= st6;
else
state <= st3;
freqcount <= freqcount + 1;
f_mea_cnt <= f_mea_cnt + 1;
end
st4 : begin
state <= st1;
if(freq2_rate_state == 1)
freq2_rate_state <= 0;
else
freq2_rate_state <= 1;
freq_datah16 <= freqcount[23:8];
freq_datal8 <= freqcount[7:0];
f_mea_cnt <= 0;
end
st5 : begin
state <= st1;
freqcount <= 0;
end
st6 : begin
state <= st1;
freqcount <= 0;
freq_datah16 <= 0;
freq_datal8 <= 0;
f_mea_cnt <= 0;
freq2_rate_state <= 1;
end
default: begin // Fault Recovery
state <= st0;
freqcount <= 0;
freq_datah16 <= 0;
freq_datal8 <= 0;
end
endcase
end
endmodule
加载中...
查看其它12个回答
一周热门
更多
>
相关问题
相关文章
基于FPGA的详细设计流程
0个评论
Xilinx的FPGA开发工具——ISE开发流程
0个评论
嵌入式领域,FPGA的串口通信接口设计,VHDL编程,altera平台
0个评论
干货分享,FPGA硬件系统的设计技巧
0个评论
你知道Verilog HDL程序是如何构成的吗
0个评论
一种通过FPGA对AD9558时钟管理芯片进行配置的方法
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
频率算法是:
module freq(
input f_in,
input f_start,
// output reg f_end,
output reg [15:0] freq_datah16,
output reg [7:0] freq_datal8,
output reg freq2_rate_state, //added 101015
input clk_f //100623: clock : 10Mhz
);
//-----------------freq_measure fsm------------------------------
reg [23:0] freqcount = 0;
parameter st0 = 0;
parameter st1 = 1;
parameter st2 = 2;
parameter st3 = 3;
parameter st4 = 4;
parameter st5 = 5;
parameter st6 = 6;
parameter st7 = 7;
parameter st8 = 8;
reg [3:0] state = st0;
//added 101019
reg [23:0] f_mea_cnt;
always@( posedge clk_f )
begin
case (state)
st0 : begin //idle
if(f_start)
state <= st1;
else
state <= st0;
freqcount <= 0;
freq_datah16 <= 0;
freq_datal8 <= 0;
freq2_rate_state <= 0;
end
st1 : begin
if(!f_in)
state <= st2;
else if (f_mea_cnt >= 300000)
state <= st6;
else
state <= st1;
freqcount <= 0;
f_mea_cnt <= f_mea_cnt + 1;
end
st2 : begin
if( f_in )
state <= st3;
else if (f_mea_cnt >= 300000)
state <= st6;
else
state <= st2;
freqcount <= freqcount +1;
f_mea_cnt <= f_mea_cnt + 1;
end
st3 : begin
if(!f_in)
state <= st4;
else if (f_mea_cnt >= 300000)
state <= st6;
else
state <= st3;
freqcount <= freqcount + 1;
f_mea_cnt <= f_mea_cnt + 1;
end
st4 : begin
state <= st1;
if(freq2_rate_state == 1)
freq2_rate_state <= 0;
else
freq2_rate_state <= 1;
freq_datah16 <= freqcount[23:8];
freq_datal8 <= freqcount[7:0];
f_mea_cnt <= 0;
end
st5 : begin
state <= st1;
freqcount <= 0;
end
st6 : begin
state <= st1;
freqcount <= 0;
freq_datah16 <= 0;
freq_datal8 <= 0;
f_mea_cnt <= 0;
freq2_rate_state <= 1;
end
default: begin // Fault Recovery
state <= st0;
freqcount <= 0;
freq_datah16 <= 0;
freq_datal8 <= 0;
end
endcase
end
endmodule
一周热门 更多>