在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5087|回复: 5

[活动] 可置数的减法计数器

[复制链接]
发表于 2012-12-21 09:22:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教您一个问题,我要做个递减的计数器,就是我可以随时设定计数的值,当设置的值减到0的时候就停止计数,下次计数是我重新设置的值计数!! 如何实现设置的值递减到0就停止了,然后我通过外部的IO设置新值然后在开始递减计数啊,我以前设计的是定值计数器,就算是可变的计数器也是递加的计数,我现在不知道如何设置值,同时在减0的时候停止,这时就在等待我的计数值的设定,设定好了又开始递减
发表于 2012-12-21 10:26:40 | 显示全部楼层
回复 1# 574920045


    可以在递减到0的时候流出一点时间来LOAD计数值
发表于 2012-12-21 11:27:19 | 显示全部楼层
增加一个 计数器开始计数允许位(en)(此位有效后,就不允许预置数位变化),内部设置一个flag,
可计数 = en & flag ,
!flag =  !en | 计数满
 楼主| 发表于 2012-12-21 12:32:32 | 显示全部楼层
回复 3# my2817


    process(clk_cnt3)
   begin
        if(rising_edge(clk_cnt3))then        
        if(cnt3>X"00000000")then
     en<='1';
     cnt3<=cnt3-'1';
     else
         en<='0';
                      if(cnt33/=cnt3_temp)then      
                         cnt33<=cnt3_temp;
            cnt3<=cnt3_temp;
                      end if;      
     end if;     
           end if;      
   end process;
如果我的cnt3_temp变化,则把cnt3_temp放入cnt3中开始计数,但是我再次设置相同的计数值则不能计数,此事我该怎么处理,应为我现在要求只要cnt3_temp设置大于0的数就开始计数,等cnt3减到0停止,如果我cnt_temp有值输入,就算和上次的值是一样的也要计数,计完则停止,有输入开始,不管cnt3_temp是什么值,大于0就行,现在上面的代码是输入不同的值开始计数,请问该怎么设计
 楼主| 发表于 2012-12-21 12:33:39 | 显示全部楼层
回复 2# nan123chang


     process(clk_cnt3)
   begin
        if(rising_edge(clk_cnt3))then        
        if(cnt3>X"00000000")then
     en<='1';
     cnt3<=cnt3-'1';
     else
         en<='0';
                      if(cnt33/=cnt3_temp)then      
                         cnt33<=cnt3_temp;
            cnt3<=cnt3_temp;
                      end if;      
     end if;     
           end if;      
   end process;
如果我的cnt3_temp变化,则把cnt3_temp放入cnt3中开始计数,但是我再次设置相同的计数值则不能计数,此事我该怎么处理,应为我现在要求只要cnt3_temp设置大于0的数就开始计数,等cnt3减到0停止,如果我cnt_temp有值输入,就算和上次的值是一样的也要计数,计完则停止,有输入开始,不管cnt3_temp是什么值,大于0就行,现在上面的代码是输入不同的值开始计数,请问该怎么设计
发表于 2012-12-21 14:01:39 | 显示全部楼层
cnt33<=cnt3_temp; ---赋值的方向反了吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 01:58 , Processed in 0.020264 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表