Project

General

Profile

« Previous | Next » 

Revision 250

Added by markw almost 11 years ago

Fix pitfall. Was only getting 2/3 values for keycode... My previous implementation seems to match the pokey datasheet but I guess not...

View differences:

common/a8core/pokey_keyboard_scanner.vhdl
key_held_next <= key_held_reg;
my_key <= '0';
if (bincnt_reg = compare_latch_reg or debounce_disable='1') then
if (bincnt_reg = compare_latch_reg) then
my_key <= '1';
end if;
......
end if;
when state_key_bounce =>
if (keyboard_response(0) = '0' or debounce_disable='1') then -- detected key press
if (keyboard_response(0) = '0') then -- detected key press
if (my_key = '1') then -- same key
keycode_latch_next <= compare_latch_reg;
irq_next <= '1';
......
when others=>
state_next <= state_wait_key;
end case;
if (debounce_disable = '1' and keyboard_response(0) = '0') then
keycode_latch_next <= bincnt_reg;
irq_next <= '1';
key_held_next<= '1';
end if;
break_pressed_next <= '0';
shift_pressed_next <= '0';

Also available in: Unified diff