Konference: SAPI-1 a československé mikropočítače
Od: | Jiri Biba |
Datum: | 14.6.2013 22:38 |
Předmět: | Re: RE: klavesnice |
Re: RE: klavesnice: |
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 dlouho 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)]