请教verilog的小问题!
我写了一段简单的代码测试蜂鸣器的,可是却不响,管脚什么的都没问题,因为用现成的程序完全能用,但把其中的语句注释掉就不行了,请各位大侠帮帮忙!module fp_verilog(
clk,rst_n,
fm
);
input clk;
input rst_n;
output fm;
assign fm=1'b1;//希望让它长鸣,可是不响
/* reg fm_r;
reg cnt;
always @(posedge clk or negedge rst_n)
if(!rst_n) cnt<=8'b0;
else cnt<=cnt+1'b1;
always @(posedge clk or negedge rst_n)
if(!rst_n) fm_r<=1'b0;
else if(cnt==8'hff) fm_r<=~fm_r;
assign fm=fm_r;
*/
endmodule 试一下 assignfm=1'b0; 回复 2# roojieryun
试了,没用 你什么板子哦,一般蜂鸣器那有个开关的,你看你的原理图有没有撒,而且你这个程序有问题,不能用assign 连续为他赋值,执行时不确定先执行的那个语句 你这个蜂鸣器的发声是这样的:输入电平在高地之间转换时,会发声;高低转换频率越高,发声越高,这也是蜂鸣器发出不同频率声音的原因,所以蜂鸣器的输入信号是脉冲,而不是某一电平。
OK 回复 5# zombes
应该是这样的,谢了 眼看你的蜂鸣器是有源还是无源的 对啊,你的蜂鸣器明显是PWM波驱动的,不是高压驱动的,所以你希望它长响,给全1电平是不行的 请教下,最后这个程序是怎么更改的? 蜂鸣器的输入信号是脉冲(或者称为不同频率时钟),而不是某一电平。
OK
页:
[1]
2