Konference: SAPI-1 a československé mikropočítače

Od: Martin Lukasek
Datum: 16.6.2013 20:11
Předmět: RE: RE: klavesnice


Ahoj,

 

zkoušel jsem to jen s klávesnicema, co mám doma a ty šlapou všechny. Interrupt mám na sestupnou hranu hodin, na kterou to pak vlastně v tom přerušení hned čtu. Pokud se posílá něco z počítače do klávesnice, tak klávesnice čte data pří vzestupné hraně a tím pádem já opět v interruptu na sestupnou hranu vystavím data, který si klávesnice při vzestupné hraně přečte.

 

Hezký večer

 

Martin

 

From: Jiri Biba (sapi tu byla ta zakroucena vec pandora.cz) [mailto:unive.nb tu byla ta zakroucena vec volny.cz]
Sent: Sunday, June 16, 2013 5:15 PM
To: Konference "SAPI-1 a československé mikropočítače"
Subject: RE: RE: klavesnice
Importance: Low

 

Díky náčelníku!

Já se náhodou dostal ke scankódům v  11 bitovým zobrazení, takže to byl právě ten můj problém co jsem popisoval. Třeba tohle: http://www.urel.feec.vutbr.cz/MIA/2009/puhony/index.html

Jak je to s převodem do 8 bitů už vím, to co jsi mi poslal to jen potvrzuje. Je to ozrcadlený a znegovaný.  Celá  sranda je od toho, jak v obslužným programu rotujou a rovnaj do slova těch 11 bitů.

Díky za AT Mega, ale v ní jsem nedělal, pro mě by byl problém. S 20 nohým Atmelem 51 řady to je mnohem jednodušší vejde se  do krytu FRB. 51 mám v malíku, mám prostředí procíky a můžu si s tím programově dělat cokoliv. Program klávesnice na LCD od študáků mám už projitej, okomentovanej a mám přesnou představu, co s tím při převracení na Sapi.

A propo, chodí ten tvůj s každou PS2? Slyšl jsem, že některý reaguji na vzestupnou a jiný na sestupnou hranu hodin...

Jirka

 

 

 

From: Martin Lukasek (sapi tu byla ta zakroucena vec pandora.cz) [mailto:martin.lukasek tu byla ta zakroucena vec artax.cz]
Sent: Saturday, June 15, 2013 9:10 AM
To: Konference "SAPI-1 a československé mikropočítače"
Subject: RE: RE: klavesnice

 

Ahoj,

 

scan kody z PS/2 jsou osmibitove, start+paritu+stop pouzij jen na zajisteni spravneho prijeti, pak Ti staci tech 8 bitu. Data jdou postupne od nejnizsiho bitu.

 

START – D0 – D1 – D2 – D3 – D4 – D5 – D6 – D7 – PARITY – STOP

 

Scan kodu je vice sad. Standardne se pouziva Set 2. Najdes ho napr. tady http://www.computer-engineering.org/ps2keyboard/scancodes2.html, pekny popis komunikace je tady http://www.computer-engineering.org/ps2protocol/ nebo tady http://proton.ucting.udg.mx/~mariocc/cap10.pdf a ja asi nejvic pouzival http://retired.beyondlogic.org/keyboard/keybrd.htm.

 

„A“ by melo posilatscan kod 1C. C7 a 438 mi zni jako bitove ozrcadlene a navic C7 zinvertovane, 438 je pak se start stop i paritou. Ale to dost zalezi, jak jsou udelane ty rutiny. Nevim na! co jak pouzivam spozdovai smycky. Ja mam interrupt na hodinach a prectu, coje na datach a nekm to soupnu, smitec. Az je to cele, strci se to do bufferu a rict si o to pak musi program, co chce znak z klavesnice.

 

V priloze mas zdrojaci i schame, ale otazka zni, zda cizi zdrojaci nejsou vic matouci, nez si to napsat znovu. Ja vysel z nejakych existujicich knihoven, ale pak jsem tam musel udelal tolik zmen a uprav, ze bych si to ted urcite napsal znovu sam, ale uz se mi to nechce predelavat, kdyz to slape.

 

Krasny den

 

Martin

 

 

From: Jiri Biba (sapi tu byla ta zakroucena vec pandora.cz) [mailto:unive.nb tu byla ta zakroucena vec volny.cz]
Sent: Saturday, June 15, 2013 12:39 AM
To: Konference "SAPI-1 a československé mikropočítače"
Subject: Re: RE: klavesnice
Importance: Low

 

Tak jsem koukal na ten převodník PS2 na Sapi a narazil jsem na záhadu s kódovací tabulkou. Jak známo, scan kód PS2 klávesnice je jedno až vícebytovej a každej byte sestává z série 11 bitů, tedy 11 pulsů hodin, ke kterejm jsou přidaný bity kódu na datovým drátu.  První bit je start, pak je 8 bitu dat, pak parita a stop. Scan kódy jsou popsaný v tabulkách formátem 0XXX hex a je do nich zahrnutý kromě dat i parita, start a stop bit.  U toho převodníku se příjem scan kódu startuje start bitem, kterej se ale zahodí, pak se slízne 8 bitů, pak parita a stop bit, který se taky oboje zahodí. Takže výsledek je pouze 8 bitů kódu. Porovnával jsem PS2 tabulku popsanou 11 bitama a příjmovou tabulku převodníku popsanou 8 bitama.  No a narazil jsem na to, že pro stejnej znak si tabulky neodpovídají.
Třeba scan kód pro A je 438hex. V převodníku je ale  C7 hex. Rozkreslil jsem si to po bitech a na nic jsem dlouh! o nemohl přijít. I když jsem odmazal start, paritu a! stop, zbytek byl stále rozdílný. Pak jsem si nějak všiml, že se obojí liší směrem čtení, tedy PS2 má první , tedy start bit na časový ose vpravo, kdežto převodník ho má vlevo a ještě je rozdíl v inverzi dat. Odzkoušel jsem to pro několik znaků a je to vždy stejný. Budu se do toho muset víc ponořit, abych přišel na to, proč to tak je.
Taky jsem koukal  do softu převodníku a řekl bych, že předěláním na výstup pro Sapi se soft ještě hodně zjednoduší vykucháním obsluhy LCD displeje a navíc několikanásobně zrychlí, v obsluze displeje je hromada zpožďovacích smyček, nejdelší skoro 0,4s.

Jirka


Ostatní příspěvky vlákna:

 
[2013/1 (16)] [2013/2 (90)] [2013/3 (37)] [2013/4 (48)] [2013/5 (36)] [2013/6 (128)] [2013/7 (27)] [2013/9 (29)] [2013/10 (64)] [2013/11 (63)]


[2010 (676)] [2011 (586)] [2012 (976)] [2013 (538)]