我正在爲斯巴達3E入門套件寫一個pong遊戲vhdl代碼。我想用PS2鍵盤控制遊戲手柄。爲此,我需要從鍵盤接收的掃描碼生成上下信號。如何過濾鍵盤事件?
這裏的示例代碼
-- Instantiate key_board controller
my_keyobard : entity work.ps2_key(Behavioral)
port map(ps2_clk => ps2_clk, ps2_data => ps2_data, clk => clk,
data_out => data);
process(data)
begin
case data is
when X"15" => up <= '1'; -- Q key for UP
when X"1C' => down <= '1'; -- A key for DOWN
when others => up <= '0'; down <= '0';
end case;
end process;
但如果我使用此代碼對向上鍵將保持「1」 HIGH始終,甚至relesing鍵盤上的Q鍵後。我希望上升信號保持在高位,直到我鬆開Q按鈕時才鬆開,然後上升信號必須返回到'0'。 基本上我想我的鍵盤按鍵功能像正常的按鈕。 如果我按住然後它必須給高信號否則如果釋放它必須給低信號。