Отговори на тема  [ 29 мнения ]  Отиди на страница Предишна  1, 2
четене на клавиатурата на PC 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Nikola Kirov написа:
Де да беше за някакъв малък процесор досега да съм го измислил 2 пъти ама е за PC. Там съм му изпуснал началото на нещата и ми е доста по трудно. Пък и чичко windows като е намесен,ми става кошмарно.

Тоя линк ти го дадох, за да прочетеш за комуникация с PC AT клавиатура. Не вярвам комуникацията с LPT порта да те затрудни особено...Аз на твое място досега да съм сложил един PIC и да го пусна през COM порта... Не ми се занимава с LPT порта, а и предпочитам серийна връзка, ще спести доста време и нерви.


Съб Май 28, 2005 3:59 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
И на мен ми е по лесно да сложа пик ама тая програмка ще е нужна и на други колеги и трябва да е само на PC. Засега прекъснах заниманието че си взеха касетофона с които експериментирах,но на някои ако му попадне подробно описание за работата с клавиатурата,ще ми е от полза.


Съб Май 28, 2005 6:33 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
E колко по подробно от това... И сигналите ги има на време-диаграма и информация за контролните думи има...че и сорс наготово, можеш само да си го обърнеш за Delphi или C++ :D

PC AT Tech. Specification


Съб Май 28, 2005 6:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Predator_MF как ти хрумна че искам да вържа клавиатура на принтерския порт. :)
Тя клавиатурата ми е закачена на PS/2 порта.
На принтерския порт правя емулация на джоистик и външен дисплей за един касетофон за кола. Ама на програмата ми трябва да има вход за бутоните на джойстика които емулирам. Ама работя като приоритета на моята програма е REALTIME_PRIORITY_CLASS. Почти нищо не работи от windows в тоя режим докато не върна управлението или не спра за момент моята нишка.

Реконстуктор, GetAsyncKeyState() работи коректно ако приоритета на програмата ми е HIGH_PRIORITY_CLASS или по нисък. Доколкото на практика изследвах реал тиме режима под XP,си е почти реал таим. Изключение се получава ако преди да пусна моята програма има пуснат някакъв процес с висок приоритет. WinAmp да плеива мп3 да кажем. Тогава чат пат и този процес получава съвсем за кратко управлението.

Успях да изровя все пак информация от един руски саит
http://sizov.boom.ru/keyb.htm

и след направените експерименти се оказа че на порт 60h мога да чета последния скан код които е изпратила клавиатурата. И таман да се зарадвам се оказа че и мишката ползва същия порт и като се мръдне там се получават всевъзможни стоиности.
Значи ми трябва някаква по подробна документация от по ново време.
Дано някой да е срещал такава че загубих цяла събота да се ровя за тая глупост вече.


Съб Май 28, 2005 11:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Не можеш ли да му направиш някакво буфериране на този принтерски порт, тогава ще можеш да работиш с по-човешки ( за Windows) приоритет. Вторият начин е да го направиш под DOS.


Съб Май 28, 2005 11:45 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Ами софтуерните варианти са за предпочитане пред храдуерните обикновенно. Пък дос :( ............ То XP вече и дос няма.


Нед Май 29, 2005 12:19 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
това трябва да ти свърши работа:


Нед Май 29, 2005 1:14 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
За които му е интересно. Измислих решение най накрая.

записа на порт 0x64 се интерпретира като команда за клавиатурния контролер или там каквото се явява в което са включени клавиатурата и PS/2 порта които се водел AUX порт.

Двете команди които вършат работа

A7h Disable the AUX port by holding the CLK line low.
A8h Enable the AUX port by releasing the CLK line.

че забранявам работата на мишката и на порт 60 е само скан кода на натиснатия клавиш.

А от тоя pdf могат да се прочетат интересни неща.


Нед Май 29, 2005 4:40 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Добре де! Ами XP как те пуска да четеш и пишеш по портовате на клавиатурния контролер. Щото тая к*рва XP-то се държи като стара девица и не дава да пипнеш нищо повече от това, което позволява благоприличието. Специално входно-изходните адреси ги третира като най-интимна зона :lol:


Нед Май 29, 2005 11:58 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
http://www.internals.com/utilities_main.htm

WinIo ти дава възможност да си човъркаш по портовете и по паметта без проблем. И което е най учудващото може и под неадминистраторски акаунт :)


Нед Май 29, 2005 12:32 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Апр 27, 2005 2:47 pm
Мнения: 349
Местоположение: Varna
Мнение 
Ами нормално след като работи като kernel-mode device driver. Мноо як LIB. Замислям се за много негови приложения и колко лоши :twisted: работи мога да направя с него. :D


Сря Юни 01, 2005 12:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Вече спретнах номер на един колега като му спретнах малка програмка дето му спира мишката и му я бутнах в start-up. W start-up-a щото ако я скрия по дълбоко щеше много нерви да му вкарам. Ама иам хора дето и заслужават :)


Сря Юни 01, 2005 3:45 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Окт 13, 2004 11:24 pm
Мнения: 500
Местоположение: Стара Загора
Мнение 
Аз си мисля че pirev ти дава хитро решение само малко да се доразвие, закачи един трийд от твоята програма за драйвера на клавиятурата , трийда да се вика или манипулира при натискане на клавиш, може вместо трийд да е call back функция , тя от своя страна ще дава инфо на останалата програма за натиснатите клавиши, така ще стане хитро и издържано, а относно real timing-а на XP-то можеш да го провериш дали чете клавиатурата като писнеш приложението си /в реал тайм/ и натиснеш CTRL+ALT+DEL или ALT+F4, ако ги изпълни значи чете въпреки всичко, ми то тогава ако чете няма да ти трябва да се закачаш на драйвера ... друг вариянт е да сканираш постоянно опашката за съобщения към приложението за натиснат клавиш /peekmessage(handle, i t.n)/ май беше на C, а на делфи е Application.ProcesMessages.


Сря Юни 01, 2005 11:06 pm
Профил YIM
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
В реал тиме и контрол алт дел -а не работи. Докато не спре програмата ти и мишката даже не се мърда дори и без да я забранявам. Под 98 не е точно така там имаш мишка да мърда ама нищо не прави като щтракаш с нея. Не съм го изследвал под 98. Но каквото съм написал в такъв режим за XP работи и под 98 без проблем.
Повече няма да се занимавам с това имам готово работещо решение,няма смисъл да се човъркам повече.


Чет Юни 02, 2005 3:01 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 29 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни