太诡异了~~调试几天都无法解决的程序~~~请高手指点~~

[复制链接]
3120|8
 楼主| winter2009 发表于 2009-12-10 15:06 | 显示全部楼层 |阅读模式
本帖最后由 winter2009 于 2009-12-10 15:12 编辑

PROCESS(CLKIN,EN2)    --倒计时显示
       VARIABLE HH:STD_LOGIC_VECTOR(7 DOWNTO 0) ;
      BEGIN
        IF clkin'EVENT AND CLKin='1' THEN  
              if  EN='1'  THEN
                 if(en2='1') then  HH(7 downto 4):="0011";  hh(3 downto 0):="0000";
                 else                  
                       if hh>0 then
                            if HH(3 downto 0)=0 then  HH(7 downto 4):=HH(7 downto 4)-1;HH(3 downto 0):="1001";
                            else HH(3 downto 0):=HH(3 downto 0)-1;   
                            end if;
                        end if;                                                                                      
                end if;
             end if;
         end if;
               TH<=HH(7 downto 4);
               TL<=HH(3 downto 0);
             END PROCESS;

这是一个倒计时的程序,en是一个使能信号,为 1 时可倒计时,clkin 为1hz脉冲
问题是:上电按复位后,也就是en为 1 了,它不倒计时,只显示00,等过了大概几十秒后,再按复位,倒计时就一切正常了,太诡异了。。。

再说明下 en2 ,en2是复位瞬间为 1,松开开关后为0.
 楼主| winter2009 发表于 2009-12-10 15:10 | 显示全部楼层
本帖最后由 winter2009 于 2009-12-10 15:12 编辑

请大家看看呃
自己先顶下。。
 楼主| winter2009 发表于 2009-12-11 17:32 | 显示全部楼层
呵呵
没人回答,自己再顶下
~~~~~~~~~~
amtek 发表于 2009-12-17 11:35 | 显示全部楼层
确实太诡异了,楼主不要着急,慢慢调,搞定了之后讲一下,让大家都学习学习。
zhouskill 发表于 2009-12-18 16:11 | 显示全部楼层
你的复位键是哪个?EN2吗?EN2按了就EN=1吗?程序中没看出来。还是你外围电路设的?
你的程序必须是先EN=1了,再按EN2,才有初值30。
xddzccn 发表于 2009-12-21 17:29 | 显示全部楼层
VHDL 我不懂啊,可以画个电路  大家就都懂了啊
sassos 发表于 2010-3-26 08:15 | 显示全部楼层
LZ的en复位信号有多长时间?
msp430f2009 发表于 2010-3-27 00:30 | 显示全部楼层
:shutup:
zhang123 发表于 2010-3-28 09:59 | 显示全部楼层
设计不严密
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

37

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部