rockfiant 发表于 2012-3-5 10:34:47

请教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

roojieryun 发表于 2012-3-6 23:31:46

试一下 assignfm=1'b0;

rockfiant 发表于 2012-3-8 11:37:48

回复 2# roojieryun


   试了,没用

bear0514 发表于 2012-3-9 17:30:18

你什么板子哦,一般蜂鸣器那有个开关的,你看你的原理图有没有撒,而且你这个程序有问题,不能用assign 连续为他赋值,执行时不确定先执行的那个语句

zombes 发表于 2012-3-11 18:10:11

你这个蜂鸣器的发声是这样的:输入电平在高地之间转换时,会发声;高低转换频率越高,发声越高,这也是蜂鸣器发出不同频率声音的原因,所以蜂鸣器的输入信号是脉冲,而不是某一电平。

OK

rockfiant 发表于 2012-3-13 15:43:05

回复 5# zombes


   应该是这样的,谢了

桂花居士 发表于 2012-3-15 15:02:55

眼看你的蜂鸣器是有源还是无源的

yuxuejun1123 发表于 2012-3-22 13:56:08

对啊,你的蜂鸣器明显是PWM波驱动的,不是高压驱动的,所以你希望它长响,给全1电平是不行的

taoyang2002 发表于 2012-3-23 00:31:11

请教下,最后这个程序是怎么更改的?

zombes 发表于 2012-3-23 22:43:32

蜂鸣器的输入信号是脉冲(或者称为不同频率时钟),而不是某一电平。

OK
页: [1] 2
查看完整版本: 请教verilog的小问题!