![]() |
|||
![]() |
JOYSTICK AD EMULAZIONE TASTIERAMarco Lizza e Marco Steccanella rispondono ad un lettore (Ferra76)domanda: > >Sto costruendo un joystick ad emulazione tastiera, cioe' tale che i > >contatti del microswitch siano collegati al chip presente in una > >tastiera; cioe' il movimento del joystick corrisponde alla normale > >pressione dei tasti. > >Il joystick l'ho costruito con ricambi di vecchi > >coin-op e l'ho collegato alla tastiera, cosi muovendolo in > >pratica genero una sequenza di tasti, (in particolare non e' detto che > >gli assi del joy siano collegati con i tasti "freccia". Li ho collegati > >diversamente in modo da evitare il piu' possibile conflitti). > >Il mio problema e' proprio il conflitto tra i tasti, infatti spingendo i tasti a > >gruppi di 4,5,6,7,8 a volte l'input viene recepito, altre volte no. > >Volevo sapere, quand'e' che si verifica questo problema per evitarlo e > >quindi assegnare al joystick dei tasti che anche spinti assieme non > >fossero in conflitto; e poi cosa si puo' migliorare a livello di bios > >per la ricezione da tastiera. > > ... > >Quando premi molti tasti contemporaneamente sulla tastiera il > >sistema si impalla e lo speaker comincia ad imprecare; non e' che > >smanettando con due joystick ad emulazione tastiera, succede la stessa cosa?Marco Lizza risponde: Se il joystick e' connesso ad una porta seriale e/o la velocita' di elaborazione dei dati in ingresso da parte della CPU non e' sufficentemente "veloce", e' molto probabile che si verifichi lo stesso inconveniente. > > Secondo te per evitare il piu' possibile questo problema in fase di > > assegnazione dei tasti dopo aver studiato tutti i collegamenti e i > > piedini del chip all'interno della tastiera, e' meglio: > > A - utilizzare meno piedini possibili del chip (piu' tasti fanno capo > > allo stesso piedino) > > B - utilizzarli il piu' separatamente possibile (ogni piedino > > viene sovraccaricato il meno possibile)Buona la prima, ma anche la seconda non e' male. Il fatto e' che non sono, a mio avviso, due strategie "opposte". Sarebbe meglio operare, per quanto possibile, un compromesso fra le due. > > Cioe' il mio dubbio e': il sistema si impalla quando si premono piu > > tasti che fanno riferimento agli stessi piedini dell'integrato > > all'interno della tastiera o quando si premono piu' tasti che fanno > > riferimento a tanti piedini diversi appartenenti all'integrato stesso.Il secondo caso, visto che in tal modo si sovraccarica il buffer piu' in fretta.
Marco Steccanella risponde: Primo problema: il clock e' generato da un circuito integrato detto PIT (Programmable Interval Timer) del tipo 8253; una volta (ai tempi dell'80286) questo era un integrato fisicamente presente sulla scheda madre; attualmente e' sicuramente compreso in uno dei mega chip che fanno parte del chipset della scheda; inoltre e' necessario conoscere con precisione l'indirizzo tramite il quale accedere alle funzioni di questo integrato; ancora, i moderni sistemi funzionano in modo protetto e non permettono accessi diretti all'hardware... (bastano come problemi?). Secondo problema: anche ammesso di riuscire ad accedere alle funzioni del generatore di clock e di avere la possibilita' fisica di modificare la frequenza di questo, si otterrebbe una modifica del clock di sistema (non l'orologio), che non e' solamente dedicato alla scansione del buffer di tastiera, ma e' dedicato alla sincronizzazione di molti processi di interfacciamento software/hardware a livello BIOS e di sistema operativo interno, e quindi si modificherebbe il funzionamento di tutto il sistema senza conoscerne le conseguenze: solo avendo una approfondita conoscenza del BIOS e del sistema operativo al livello piu' basso sarebbe teoricamente possibile avere un'idea delle conseguenze... ma non sarebbe ancora un'idea certa, perche', per esperienza, proprio questo clock lo ho trovato dedicato a cose non specificate da nessuna parte (modificandolo, aumentando la frequenza, diminuiva in modo molto significativo la velocita' di accesso al floppy disk...); questo intende essere solo un esempio, perche' la mia esperienza si basa su macchine attualmente obsolete come gli 80286, ma la cui struttura e' sicuramente alla base delle moderne macchine.
|