Portál AbcLinuxu, 13. května 2025 23:06

Dotaz: cteni klavesnicoveho portu

19.2.2008 12:52 jindol | skóre: 2
cteni klavesnicoveho portu
Přečteno: 127×
Odpovědět | Admin
ahoj,
hraju si s primym ctenim scancodu klavesnice zapojene do PS/2. Defaultne se data z klavesnice zapisuji na port 0x60, coz lze primo cist pomoci inb(cislo_portu). Takze po stisku klavesy se na portu objevi jeji scancode.
Jenze mam PS/2vou i mys. Problem spociva v tom, ze se na port zapisuje i pripade ze se hybe mys a ja nedokazu rozlisit, zda byla stisknuta klavesa nebo treba klik na mysi. Nevi nekdo jak se to da rozlisit?
dik
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

michich avatar 19.2.2008 13:54 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: cteni klavesnicoveho portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přečteš si status registr na portu 0x64. Jeden z jeho bitů ti řekne, jestli jsou data z klávesnice nebo z AUX (myši). Viz drivers/input/serio/i8042.c.
19.2.2008 14:09 jindol | skóre: 2
Rozbalit Rozbalit vše Re: cteni klavesnicoveho portu
no to mi prave nejak nefunguje, protoze ve status registru je porad 0x14 - coz si myslim ze je spravna hodnota.
kod je nejak takhle:
    while(1)
    {
        status = inb(KEYBOARD_STATUS_PORT);     
        if(status == 0x14)
        {
            c = inb(KEYBOARD_PORT);
            ...
        }
        usleep(1000);
    }
a nevim co/kde to ctu spatne

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.