masonson 发表于 2014-9-4 08:33:43

altera cyclone iii ep3c5e144c8n 如何实现5S以上的延时?

现在有1S的延时,我想让一个LED亮5S,之后换不亮5S,依次循环。
reg cnt;

always @(posedge clk or negedge rst_n)
if(!rst_n) cnt <= 24'd0;
else if (cnt >= 24'd25_000_000) cnt <= 24'd0;
else cnt <= cnt+1'b1;
wire timeer_1s = (cnt == 24'd25_000_000);


这个是开发板上的资料,已经有1S的延时了,如何到5S ?

dongyanbo 发表于 2014-9-4 08:57:55

看不明白楼主的问题,你那个代码哪里是1s延时,就是1s产生1个脉冲而已;想让LED灯亮5s,灭5s循环,直接计数到250_000_000,cnt小于125_000_000就点亮led,否则就灭

masonson 发表于 2014-9-4 09:17:13

dongyanbo 发表于 2014-9-4 08:57
看不明白楼主的问题,你那个代码哪里是1s延时,就是1s产生1个脉冲而已;想让LED灯亮5s,灭5s循环,直接计数 ...

嗯,好的,我试试。

masonson 发表于 2014-9-4 09:58:21

dongyanbo 发表于 2014-9-4 08:57
看不明白楼主的问题,你那个代码哪里是1s延时,就是1s产生1个脉冲而已;想让LED灯亮5s,灭5s循环,直接计数 ...

请问一下哈,如果我想让某一动作状态保持在5s,比如电机转5S之后,才执行其他动作呢?就是C语言中 motor =1; delay(1000)   比如这里就保持了5S才退出,那么我如何让这里的状态也保持5S呢?

dongyanbo 发表于 2014-9-4 10:35:48

那你就让计数器计数到125_000_000,计到这个数就保持,cnt小于这个数时电机转动,等于这个数时可以执行其他动作了,楼主应该是刚接触FPGA吧,所以想问题的思路还是停留在单片机的思路,刚开始都这样

honeybear 发表于 2014-9-4 10:53:10

楼主刚接触FPGA吧,

masonson 发表于 2014-9-4 10:56:55

honeybear 发表于 2014-9-4 10:53
楼主刚接触FPGA吧,

是的,刚买了基本关于Verilog的书,还弄了开发板,嗯,请多指教。

masonson 发表于 2014-9-4 13:08:47

dongyanbo 发表于 2014-9-4 10:35
那你就让计数器计数到125_000_000,计到这个数就保持,cnt小于这个数时电机转动,等于这个数时可以执行其他 ...

不太理解哈,怎么保持住呢?方便写个代码看看么?
页: [1]
查看完整版本: altera cyclone iii ep3c5e144c8n 如何实现5S以上的延时?