А в чём она заключается, а то я подумал грешить на плисину...
---------- Post added at 19:16 ---------- Previous post was at 18:58 ----------
Мысли по вводу режима №3 по опросу клавиатуры:
переменную metod расширить до трёх значений:
1. =0 - метод №0 (вновь вводимый). инициализируется плисина в это значение. При считывании портов ВВ55, если ранее не был режим 1 или 2 (см. ниже), значения битов всех портов А,В и С присваиваиваются в зависимости от нажатой клавиши (spetskeyboard.v). Конкретнее в этом коде должны быть два нуля, соответствующие нажатой клавише. Этот ответный код записывается сразу в porta, portb и portc.
2. =1 - метод №1 (ранее был =0). порты а и с выводят бегущий ноль, порт в вводит ответный код.
3. =2 - метод №2 (ранее был =1). порт в выводит бегущий ноль, порты а и с вводят ответный код.
Реализацию кода планирую в драйвере клавиатуры (spetskeyboard.v) - основная часть и в основной программе. Пока обдумываю конкретнее как вставить в программу хотелки.
---------- Post added at 19:28 ---------- Previous post was at 19:16 ----------
Вот реализация переключения скорости работы процессора - Turbo/Normal - 4 и 2 МГц соответственно (клавиши Page Up и Page Down):
Измененный файл spetskeyboard.v представлю позже.Код:signal turbo_key: std_logic; -- клавиша "Турбо" signal turbo: std_logic:= '0'; -- скорость: 4 МГц / 2 МГц ... component spetskeyboard is -- контроллер клавиатуры port( ... turbo_k : out std_logic -- нажата клавиша "Турбо" ); end component; ... turbo <= '1' when turbo_key = '1' else '0'; -- скорость: 4 МГц / 2 МГц ... process(clock,del,turbo) begin if (clock'event and clock = '1') then if turbo = '1' then clk_cpu <= del (0); -- Turbo режим 4 МГц else clk_cpu <= not del (1); -- Normal режим 2 МГц end if; end if; end process;




Ответить с цитированием