User Tag List

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

Тема: PS/2 адаптер клавиатуры для Специалиста

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Провел тесты. Тут тестируется три способа сканирования кнопок. Сканирование переключением режимов порта - это две верхние полоски. Сканирование вертикалей. Сканирование горизонталей.

    Как и ожидалось, последовательность команд

    STA imm
    LDA imm

    работает отлично



    А вот последовательность

    STA
    MOV A, M

    не работает.



    Точнее работает только для сканирования горизонталей (PB2-PB7) и только для столбцов с кнопками 4...0 (PA0-PA7).



    ---------- Post added 24.01.2013 at 00:26 ---------- Previous post was 23.01.2013 at 23:50 ----------

    С внешними резисторами я наверное смогу заставить работать ATMega8.

    ---------- Post added at 00:30 ---------- Previous post was at 00:26 ----------

    Как практически, так и теоретически у нас есть 25 тактов, за которые мы должны дать ответ.

    (7.5*4-5) = 25

    ---------- Post added at 00:32 ---------- Previous post was at 00:30 ----------

    Код:
    interrupt [EXT_INT0] void ext_int0() {
    #asm
    .EQU PIND=0x10
    .EQU PINC=0x13
    .EQU PINB=0x16
    .EQU DDRC=0x14
    .EQU DDRB=0x17
    .EQU DDRD=0x11
    .EQU PORTB=0x18
    .EQU PORTC=0x15
    .EQU PORTD=0x12
            IN   R8, SREG   ; 1 1
    
            ; Переводим PORTC в режим ввода
            CLR  R9         ; 1 2
            OUT  DDRC, R9   ; 1 3
    
            ; DDRB = c2b[PINC]; 
            IN   R28, PINC  ; 1 4
            ANDI R28, 0x3F  ; +1
            CPI  R28, 0x3F  ; 1 5
            BREQ  _v12      ; 2 7
            LD   R9, Y      ; 2 9 Адрес 0x200+R28
            OUT  DDRB, R9   ; 1 10 
    
            ; DDRD = (DDRD & 0x33) | c2d[PINC]; 
            SUBI R28, -64   ; 1 11 
            LD   R9, Y      ; 2 13 Адрес 0x200+R28+64
    
            IN   R28, DDRD  ; 1 14
            ANDI R28, 0x33  ; 1 15
            OR   R28, R9    ; 1 16
            OUT  DDRD, R28  ; 1 17 
    
            ; Выход
            OUT  SREG, R8
            RETI           
    
    _v12:   ; Переводим порты B,D в режим ввода. PORTС в режим вывода
            OUT  DDRB, R9    ; 1 8   R9=0
            IN   R28, DDRD   ; 1 9
            ANDI R28, ~0x33  ; 1 10
            OUT  DDRD, R28   ; 1 11 
    
            ; DDRC = b2c[PINB] | d2c[PIND & 0x33];
        	IN   R28, PIND   ; 1 12
        	ORI  R28, 0xCC   ; 1 13
            LD   R9, Y       ; 2 15 Адрес 0x200+R28+192
    
            IN   R28, PINB   ; 1 16
        	LDI  R29, 1      ; 1 17
        	LD   R28, Y      ; 2 19 Адрес 0x100+R28
    
        	OR   R9, R28     ; 1 20
        	OUT  DDRC, R9    ; 1 21
    
            ; Выход
            OUT  SREG, R8
            LDI  R29, 2
    #endasm
    }
    Пробовать буду завтра.
    Последний раз редактировалось vinxru; 24.01.2013 в 11:09.

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

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

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

Похожие темы

  1. Ответов: 153
    Последнее: 16.12.2021, 19:07
  2. Адаптер Z80->ZX-BUS
    от zx-kit в разделе Несортированное железо
    Ответов: 12
    Последнее: 05.10.2011, 11:35
  3. CD адаптер
    от alexsan в разделе БК-0010/0011
    Ответов: 2
    Последнее: 12.09.2011, 21:54
  4. Изучается спрос на плату для Специалиста
    от Павел Рябцов в разделе Барахолка (архив)
    Ответов: 109
    Последнее: 30.11.2010, 10:16
  5. Продается Лик (клон Специалиста)
    от KALDYH в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 20.02.2010, 14:29

Ваши права

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