count down and turn on LED on DE1

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • nam_bkfet
    Thành viên mới
    • Apr 2011
    • 29

    #1

    count down and turn on LED on DE1

    Mình đang có 1 vấn đề với đoạn code này,mong mọi người giúp đỡ
    PHP Code:
    process(KEY(0),KEY(3),CLOCK_50)
    variable count,rev:integer;
    variable enb:std_logic;
    begin
    rev:=temp;
    if(KEY(0)='0') then --KEY(0) co chuc nang reset ve trang thai ban dau
        enb:='0';
        rev:=temp;
        count:=0;
        elsif(CLOCK_50'event and CLOCK_50='1') then count:=count+1;
        if(count=50000000) then --chia tan,rev giam cu sau moi 1s
            rev<=rev-1;
            count:=0;
        end if;
    end if;
    if(rev=0) then
        enb:='1';
        count:=0;
    end if;    
    LEDG(0)<=enb;
    end process;
    end behav; 
    
    vấn đề là mình sẽ muốn đếm ngược(theo s) với giá trị ban đầu được gán vào signal temp=const.Sau đó sẽ được đếm ngược về 0(thông qua biến rev).Khi rev=0 thì sẽ ngừng đếm và turn on LEDG(0) trên DE1(mình bật tắt LED thông qua 1 biến khác la enb).Phím nhấn KEY(0) dung để reset về trạng thái ban đầu.
    Mình viết code như trên và test trên kit thì ko thấy động tĩnh gì.Không biết code mình viết sai ở đâu.Hy vọng mọi người giúp mình giải quyết vấn đề này.thanks
  • hacthiet
    Thành viên mới
    • Sep 2009
    • 25

    #2
    sơ qua về code của bạn thì ít nhất có 1 lỗi sai khiến rev của bạn không bao giờ về 0 được, process được chạy lặp đi lặp lại vì thế lúc nào rev của bạn cũng được gán bằng temp, ví dụ temp = 5, rev := temp , khi hết 1s, rev - 1 = 4 nhưng ngay sau đó khi process quay lại về đầu thì rev lại được gán bằng 5. Bạn thử xóa dòng lệnh đầu tiên trong process đi(rev:=temp; ) và thay giá trị ban đầu lên phần khai báo biến rev xem.
    thêm 1 lỗi nhỏ chắc do bạn gõ lại khônng để ý: câu lệnh rev<=rev-1 phải là rev := rev-1 vì rev là variable

    Comment

    • nam_bkfet
      Thành viên mới
      • Apr 2011
      • 29

      #3
      uh,minh sửa và đã chạy ngon.đúng là 1 lỗi ngớ ngẩn

      Comment

      Về tác giả

      Collapse

      nam_bkfet Tìm hiểu thêm về nam_bkfet

      Bài viết mới nhất

      Collapse

      Đang tải...