реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Соответствие PS/2 сканкодов ASCII кодам
elektronshik
сообщение Dec 17 2008, 07:55
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 25-10-07
Из: Тольятти
Пользователь №: 31 723



Выложите пожалуйста нормальный массив на C для перевода сканкодов PS/2 клавиатуры в ASCII коды.
Соответствие должно быть такое:

scan2ascii[0x16] == '1';
scan2ascii[0x2E] == '5';
scan2ascii[0x1C] == 'A';

зы: гугл и т.п не предлагать

Сообщение отредактировал elektronshik - Dec 17 2008, 07:57
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 17 2008, 13:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А как быть со скан-кодами нажатия и отпускания? wink.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 17 2008, 13:32
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(elektronshik @ Dec 17 2008, 10:55) *
зы: гугл и т.п не предлагать

А зря, ведь там есть готовые проекты для подключения клавы к контроллеру, я видел для AVR (осмелюсь предположить, что он как раз и нужен).
Осмелюсь также заметить, что это не системный уровень проектирования, тем более не математика или физика. В крайнем случае в интерфейсы. А скорее в начинающие

Вот собственно, и сам проект

PS; сорри за занудство, день сегодня выдался тяжёлый, хоть и не понедельник


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
elektronshik
сообщение Dec 17 2008, 14:03
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 25-10-07
Из: Тольятти
Пользователь №: 31 723



Цитата(rezident @ Dec 17 2008, 16:25) *
А как быть со скан-кодами нажатия и отпускания? wink.gif

Никак, нужны только те что соответствуют ASCII кодам.

Цитата
Вот собственно, и сам проект

Видел, это не то, здесь в цикле перебирают, а нужно сразу. Не стал бы ничего здесь спрашивать, непосмотрев в гугле.

Вобщем задаешь один вопрос - получаешь два...
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 17 2008, 14:26
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(elektronshik @ Dec 17 2008, 19:03) *
Никак, нужны только те что соответствуют ASCII кодам.
Клавиатура выдает скан-коды как на нажатие кнопки так и на отпускание. К тому же есть скан-коды, вообще не имеющие аналогов в ASCII, например, функциональные кнопки, CTRL, ALT, PrintScreen и прочие. Потому я и спросил, какие именно коды вас интересуют?
Самое простое преобразование для данного случая - табличное. Берете две таблицы: таблицу скан-кодов и таблицу ASCII и составляете третью таблицу, где номер позиции ASCII-символа соответствует скан-коду. Тут работы на час с двумя перекурами по 10 минут. wink.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 18 2008, 06:45
Сообщение #6


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Может я конечно туплю с утра, но вот это разве не скан-коды?
CODE

Scancodes.h
// Нижние символы
flash unsigned char unshifted[][2] = {
0x0d,9,
0x0e,'|',
0x15,'q',
0x16,'1',
0x1a,'z',
0x1b,'s',
0x1c,'a',
0x1d,'w',
0x1e,'2',
0x21,'c',
0x22,'x',
0x23,'d',
0x24,'e',
0x25,'4',
0x26,'3',
0x29,' ',
0x2a,'v',
0x2b,'f',
0x2c,'t',
0x2d,'r',
0x2e,'5',
0x31,'n',
0x32,'b',
0x33,'h',
0x34,'g',
0x35,'y',
0x36,'6',
0x39,',',
0x3a,'m',
0x3b,'j',
0x3c,'u',
0x3d,'7',
0x3e,'8',
0x41,',',
0x42,'k',
0x43,'i',
0x44,'o',
0x45,'0',
0x46,'9',
0x49,'.',
0x4a,'-',
0x4b,'l',
0x4c,'ш',
0x4d,'p',
0x4e,'+',
0x52,'ж',
0x54,'е',
0x55,'\\',
0x5a,13,
0x5b,'Ё',
0x5d,'\'',
0x61,'<',
0x66,8,
0x69,'1',
0x6b,'4',
0x6c,'7',
0x70,'0',
0x71,',',
0x72,'2',
0x73,'5',
0x74,'6',
0x75,'8',
0x79,'+',
0x7a,'3',
0x7b,'-',
0x7c,'*',
0x7d,'9',
0,0
};
// Верхние символы
flash unsigned char shifted[][2] = {
0x0d,9,
0x0e,'§',
0x15,'Q',
0x16,'!',
0x1a,'Z',
0x1b,'S',
0x1c,'A',
0x1d,'W',
0x1e,'"',
0x21,'C',
0x22,'X',
0x23,'D',
0x24,'E',
0x25,'¤',
0x26,'#',
0x29,' ',
0x2a,'V',
0x2b,'F',
0x2c,'T',
0x2d,'R',
0x2e,'%',
0x31,'N',
0x32,'B',
0x33,'H',
0x34,'G',
0x35,'Y',
0x36,'&',
0x39,'L',
0x3a,'M',
0x3b,'J',
0x3c,'U',
0x3d,'/',
0x3e,'(',
0x41,';',
0x42,'K',
0x43,'I',
0x44,'O',
0x45,'=',
0x46,')',
0x49,':',
0x4a,'_',
0x4b,'L',
0x4c,'Ш',
0x4d,'P',
0x4e,'?',
0x52,'Ж',
0x54,'Е',
0x55,'`',
0x5a,13,
0x5b,'^',
0x5d,'*',
0x61,'>',
0x66,8,
0x69,'1',
0x6b,'4',
0x6c,'7',
0x70,'0',
0x71,',',
0x72,'2',
0x73,'5',
0x74,'6',
0x75,'8',
0x79,'+',
0x7a,'3',
0x7b,'-',
0x7c,'*',
0x7d,'9',
0,0
};

Ё-моё, как прокрутку прикрутить, чтобы не на весь лист было?
где-то обсуждали недавно...
gotty, thnks. Понял.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
msalov
сообщение Dec 18 2008, 07:47
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(MrYuran @ Dec 18 2008, 08:45) *
Ё-моё, как прокрутку прикрутить, чтобы не на весь лист было?
где-то обсуждали недавно...

CODE

Scancodes.h
// Нижние символы
flash unsigned char unshifted[][2] = {
0x0d,9,
0x0e,'|',
0x15,'q',
0x16,'1',
0x1a,'z',
0x1b,'s',
0x1c,'a',
0x1d,'w',
0x1e,'2',
0x21,'c',
0x22,'x',
0x23,'d',
0x24,'e',
0x25,'4',
0x26,'3',
0x29,' ',
0x2a,'v',
0x2b,'f',
0x2c,'t',
0x2d,'r',
0x2e,'5',
0x31,'n',
0x32,'b',
0x33,'h',
0x34,'g',
0x35,'y',
0x36,'6',
0x39,',',
0x3a,'m',
0x3b,'j',
0x3c,'u',
0x3d,'7',
0x3e,'8',
0x41,',',
0x42,'k',
0x43,'i',
0x44,'o',
0x45,'0',
0x46,'9',
0x49,'.',
0x4a,'-',
0x4b,'l',
0x4c,'ш',
0x4d,'p',
0x4e,'+',
0x52,'ж',
0x54,'е',
0x55,'\\',
0x5a,13,
0x5b,'Ё',
0x5d,'\'',
0x61,'<',
0x66,8,
0x69,'1',
0x6b,'4',
0x6c,'7',
0x70,'0',
0x71,',',
0x72,'2',
0x73,'5',
0x74,'6',
0x75,'8',
0x79,'+',
0x7a,'3',
0x7b,'-',
0x7c,'*',
0x7d,'9',
0,0
};
// Верхние символы
flash unsigned char shifted[][2] = {
0x0d,9,
0x0e,'§',
0x15,'Q',
0x16,'!',
0x1a,'Z',
0x1b,'S',
0x1c,'A',
0x1d,'W',
0x1e,'"',
0x21,'C',
0x22,'X',
0x23,'D',
0x24,'E',
0x25,'¤',
0x26,'#',
0x29,' ',
0x2a,'V',
0x2b,'F',
0x2c,'T',
0x2d,'R',
0x2e,'%',
0x31,'N',
0x32,'B',
0x33,'H',
0x34,'G',
0x35,'Y',
0x36,'&',
0x39,'L',
0x3a,'M',
0x3b,'J',
0x3c,'U',
0x3d,'/',
0x3e,'(',
0x41,';',
0x42,'K',
0x43,'I',
0x44,'O',
0x45,'=',
0x46,')',
0x49,':',
0x4a,'_',
0x4b,'L',
0x4c,'Ш',
0x4d,'P',
0x4e,'?',
0x52,'Ж',
0x54,'Е',
0x55,'`',
0x5a,13,
0x5b,'^',
0x5d,'*',
0x61,'>',
0x66,8,
0x69,'1',
0x6b,'4',
0x6c,'7',
0x70,'0',
0x71,',',
0x72,'2',
0x73,'5',
0x74,'6',
0x75,'8',
0x79,'+',
0x7a,'3',
0x7b,'-',
0x7c,'*',
0x7d,'9',
0,0
};
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 11:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01449 секунд с 7
ELECTRONIX ©2004-2016