User Tag List

Показано с 1 по 10 из 69

Тема: БезWaitовый контроллер клавиатуры

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    ZEK
    Гость

    По умолчанию

    SBIS выбор сроки происходит логическим 0

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    716
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    48
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    SBIS выбор сроки происходит логическим 0
    Ой !!!

    ---------- Post added at 18:00 ---------- Previous post was at 17:57 ----------

    Цитата Сообщение от Vadim Посмотреть сообщение
    Всё таки ответьте. Есть ли сабж? Кто либо сделал? Т.е. что бы спектрум не видел бы разницы между механической и эмулируемой клавой от АТ?
    .я ещё пока не сделал. Но надеюсь сделать. Это технически реально.

    ---------- Post added at 18:06 ---------- Previous post was at 18:00 ----------

    Цитата Сообщение от caro Посмотреть сообщение
    Код:
    	.ORG 0X01
    ;				; 4 такта на переход в прерывание
    	IN	ZL,PINB		; 1 READ HIGH BYTE OF PORT ADDRESS 5
    	IN	TMPSR,SREG	; 1 SAVE STATUS REGISTER 6
    ;	MOV	TMPI,ZL		; 1 COPY SCAN CODE TO TMPI 7
    ; Нет необходимости вводить переменную TMPI
    	ANDI	ZL,0B00111111	; 2 PREPARING 8
    ;	ADD	ZL,CONST5F	; 2 INTERNAL RAM 9
    ;	ADC	ZH,ZERO		; 2 ADDRESS 10
    ; Поскольку ZL после маскировки старших битов < 64,
    ; то переноса быть не может, только ZH надо всегда иметь = 0
    ; Лучше написать так:
    	SUBI	ZL,-0x60	; Буфер скан-кодов с адреса 0x60
    	LD	BUFI,Z		; 3 LOAD CURRENT PORT DATA 12
    ;	SBRC	TMPI,7		; 4 *
    	SBIS	PINB,7
    	AND	BUFI,COLOMN7	; 4 DATA * 14
    ;	SBRC	TMPI,6		; 4 CORRECTION -
    	SBIS	PINB,6
    	AND	BUFI,COLOMN6	; 4 - 			16
    	OUT	PORTD,BUFI	; 5 OUT CURRENT		17 ;10
    	OUT	DDRD,CONSTFF	; 5 PORT DATA		18 ;11
    ; Сейчас на шине данных выставлен байт данных от порта клавиатуры
    	NOP			; 5 NOP1		19 ;12
    ; Надо бы подсчитать время, что бы быть уверенным, что цикл
    ; чтения порта клавиатуры уже закончен
    	OUT	PORTD,ZERO	; 6 RETURN PORTD DATA	20 ;13
    ; Порт данных переведен в режим чтения
    ; Не слишком ли короткий получается период выдачи данных
    ; порта клавиатуры?
    ; 2 такта при 42 МГц это порядка 48 нсек :)
    	OUT	DDRD,DIRD	; 6 AND MAIN DIRECTION PORTD 21 ;14
    ;	CLR	ZH 		; 7 RESET ZH		22
    ; Обнулить ZH надо при инициализации программы
    	OUT	SREG,TMPSR	; 7 RETURN STATUS	23
    	RETI			; 8 RETURN		24



    Спасибо !!! Единственное: я не могу долго держать скан-код на шине адреса в связи с особенностями проекта: у меня к ней довольно часто обращается видеопроцессор. Я это делаю чтобы не мешатьт ему. Да и РОН-ов мне пока хватает ... Спасибо за участие в проекте.

    ---------- Post added at 18:07 ---------- Previous post was at 18:06 ----------

    Цитата Сообщение от caro Посмотреть сообщение
    Код:
    	.ORG 0X01
    ;				; 4 такта на переход в прерывание
    	IN	ZL,PINB		; 1 READ HIGH BYTE OF PORT ADDRESS 5
    	IN	TMPSR,SREG	; 1 SAVE STATUS REGISTER 6
    ;	MOV	TMPI,ZL		; 1 COPY SCAN CODE TO TMPI 7
    ; Нет необходимости вводить переменную TMPI
    	ANDI	ZL,0B00111111	; 2 PREPARING 8
    ;	ADD	ZL,CONST5F	; 2 INTERNAL RAM 9
    ;	ADC	ZH,ZERO		; 2 ADDRESS 10
    ; Поскольку ZL после маскировки старших битов < 64,
    ; то переноса быть не может, только ZH надо всегда иметь = 0
    ; Лучше написать так:
    	SUBI	ZL,-0x60	; Буфер скан-кодов с адреса 0x60
    	LD	BUFI,Z		; 3 LOAD CURRENT PORT DATA 12
    ;	SBRC	TMPI,7		; 4 *
    	SBIS	PINB,7
    	AND	BUFI,COLOMN7	; 4 DATA * 14
    ;	SBRC	TMPI,6		; 4 CORRECTION -
    	SBIS	PINB,6
    	AND	BUFI,COLOMN6	; 4 - 			16
    	OUT	PORTD,BUFI	; 5 OUT CURRENT		17 ;10
    	OUT	DDRD,CONSTFF	; 5 PORT DATA		18 ;11
    ; Сейчас на шине данных выставлен байт данных от порта клавиатуры
    	NOP			; 5 NOP1		19 ;12
    ; Надо бы подсчитать время, что бы быть уверенным, что цикл
    ; чтения порта клавиатуры уже закончен
    	OUT	PORTD,ZERO	; 6 RETURN PORTD DATA	20 ;13
    ; Порт данных переведен в режим чтения
    ; Не слишком ли короткий получается период выдачи данных
    ; порта клавиатуры?
    ; 2 такта при 42 МГц это порядка 48 нсек :)
    	OUT	DDRD,DIRD	; 6 AND MAIN DIRECTION PORTD 21 ;14
    ;	CLR	ZH 		; 7 RESET ZH		22
    ; Обнулить ZH надо при инициализации программы
    	OUT	SREG,TMPSR	; 7 RETURN STATUS	23
    	RETI			; 8 RETURN		24



    Спасибо !!! Единственное: я не могу долго держать скан-код на шине адреса в связи с особенностями проекта: у меня к ней довольно часто обращается видеопроцессор. Я это делаю чтобы не мешатьт ему. Да и РОН-ов мне пока хватает ... Спасибо за участие в проекте.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 34
    Последнее: 24.11.2022, 16:05
  2. Корпуса и клавиатуры
    от Sonic в разделе Устройства ввода
    Ответов: 110
    Последнее: 07.10.2010, 22:27
  3. Ответов: 5
    Последнее: 10.03.2006, 22:04
  4. Контроллер клавиатуры для Скорпиона
    от Nikolaj Amosov (500:812/02.26) в разделе Scorpion
    Ответов: 1
    Последнее: 15.11.2005, 23:05
  5. Куплю контроллер ibm клавиатуры для скорпа!
    от sp0t в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 29.03.2005, 16:37

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •