Последний раз редактировалось zx-kit; 20.01.2014 в 19:50.
"L-256"
клавиатура спектрума это 8 строк по 5 кнопок, одновременно можно выбрать хоть все 8 строк, если есть желание побыстрому проверить нажатие кнопки на клавиатуре, что бы это дело корректно отработать, надо в зависимости от старших адресных разрядов, брать значение столбцов для кнопок и по AND их объединять, время реакции, буквально 2,5 такта на частота 3.5мгц проца, либо 2 такта и выставить wait, но это плохой вариант
на avr сделали так, из матрицы 40кнопок (8 рядов 5колонок) делают табличку на 256 байт, где уже все предрасчитанно и фактически обработчик прерывания выглядит так
rdval:
in r31, (portd)
ld r16, z
out (portb), r16
ret
---------- Post added at 18:45 ---------- Previous post was at 18:38 ----------
хочу понять, причем тут dma и event, мож есть какой то хитросделанный фокус покус
---------- Post added at 18:47 ---------- Previous post was at 18:45 ----------
как программе приспичит, так и будет сканировать, это в бейсике по умолчанию висит на прерываниях и там юзается сканбит, в софтах, юзают по несколько выбранных строк одновременно, и вообще не пойму, нафик сканбит, ARM не собирается клаву сканить, он собирается притворятся механической клавиатурой, то есть реагировать на 8 входных сигналов в произвольной комбинации, должен выдать 5 бит, которые бы выдала механическая клавиатура, должен сделать это быстро
Вот бы ее к Фениксу подпаять вместо АТМЕГИ. И имитировать периодическое нажатие одной кнопки. По алгоритму работы поможем. Для начала - прочитать старший байт адреса при прерывании.
Это только в ПЗУ и правильных программах, а в остальных - кто кодгда хочет, даже может быть постоянный опрос.Вот кстати - если не ошибаюсь сканирование клавиатуры происходит в прерывании ? С какой частотой ?
Можно от девборды подпаять пока три провода. Один - сигнал чтения из порта клавиатуры (выв. 12 /INT0), второй - один из 8 битов адреса A8-A15 (A12 Z80), третий один из 5 битов данных на клавиатуру (сразу не сообразишь, куда). Остальное дело программирования - будем нажимать кнопку 0.
ZEK, Поправьте по схеме, если ошибусь.
Нет ли более простого клона, где есть разъем под механическую клавиатуру ?
Последний раз редактировалось zx-kit; 20.01.2014 в 20:07.
"L-256"
А что такое event ты знаешь ?
Я спрашиваю потому, что не знаю с чего тебе придется начинать объяснять .
И не факт что сие и задействовать понадобится, я приводил event'ы как механизм мощнее прерываний , не мешающий ядру.
Так уважаемые, оба .
Механическая клава - тупо , на основании скан бита на адресах , выводит
данные на KL0-KLx .
С чего вы панику наводите ? С этим вариантом все получится.
Хотим большего, давайте попросим у caro исходники, чем гадать ...
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
dosikus, не парься, посчитали уже на 48мгц, если на асме написать обработчик, все успеет, даже может в турбе
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
zst, В помощь .
The Definitive Guide to the
ARM Cortex-M0
Joseph Yiu
http://caxapa.ru/thumbs/424855/The_D...M_Cortex-M.pdf
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)