pulsantiera per gioco a quiz

vorrei realizzare una pulsantiera per 4 persone con 4 pulsanti che se premuti mettono a stato logico 1 un pin della porta parallela lpt1 del mio computer, in quel modo poi con un programma appositamente sviluppato in visual basic leggendo lo stato dei pin dovrei gestire chi ha premuto per primo il pulsante.

e poi essere in grado dal programma vb di rimettere tutti i pin della porta a zero.

qualcuno sa darmi delle direttive o qualche esempio su come procedere?

Grazie.

Reply to
Stero72
Loading thread data ...

Pestando alacremente sulla tastiera "Stero72" ebbe l'ardire di profferire:

Non c'è bisogno di chissà che cosa, inoltre non è neppure necessaria una logica che mantenga lo stato visto che il software visual basic sarà senza dubbio in grado di leggere lo stato dei pulsanti migliaia (almeno) di volte al secondo... Bastano dunque dei normali pulsanti:

[FIDOCAD] MC 50 40 0 0 860 MC 50 20 1 0 080 LI 50 20 50 15 LI 50 15 50 10 MC 50 10 2 0 010 TY 35 10 5 3 0 0 0 * 5v TY 55 20 5 3 0 0 0 * 4k7 LI 50 30 50 40 LI 50 55 50 70 MC 50 70 0 0 040 LI 50 35 70 35 LI 65 30 70 35 LI 70 35 65 40 SA 50 35 TY 75 30 5 3 0 0 0 * al pin di input della parallela TY 75 60 5 3 0 0 0 * x 4 circuiti
--
To err is human; to forgive, beyond the scope of the Operating System.
News 2002 [v 2.07] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net
Reply to
Due di Picche

scusa come funziona questo codice? lo incolo in fidocad per vedere il circuito? Grazie.

Reply to
Stero72

Non ne sarei cos=EC sicuro. Dipende dal sistema operativo e da un po' di altre cose. Senza troppe difficolt=E0 si pu=F2 fare una lettura ogni circa 16mS (minimo intervallo del timer nativo di vb6 sotto xp). Con soluzioni sconsigliate (timer multimediale) si pu=F2 arrivare ai millisecondi. Ma in ambedue i casi latenze aggiuntive di decine di millisecondi sono normali. E per determinare quale pulsante =E8 stato premuto prima IMHO le decine di millisecondi sono importanti.

Ciao.

lucky

Reply to
lucky

Pestando alacremente sulla tastiera "lucky" ebbe l'ardire di profferire:

E chi ha parlato di utilizzare i timer? Il polling va fatto da codice, non timerizzato, in un loop.

--
Every program in development at MIT expands until it can read mail.
News 2002 [v 2.07] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net
Reply to
Due di Picche

Pestando alacremente sulla tastiera "Stero72" ebbe l'ardire di profferire:

Si

--
It's redundant!  It's redundant!        -R. E. Dundant
News 2002 [v 2.07] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net
Reply to
Due di Picche

Non in visual basic, e nemmeno in windows, e nemmeno in dos. In windows la esecuzione del codice viene sospesa a discrezione del sistema e ripresa quando il sistema ha finito di accontentare tutti. A cosa serve, se non a sprecare cicli di cpu, fare mille letture di fila in un millisecondo se poi per decine di millisecondi il polling =E8 fermo?

In dos a sospendere la esecuzione ci sono gli interrupt, tar cui quelli pesanti del timer e dell'accesso ai dischi.=20

Ciao.

lucky

Reply to
lucky

Pestando alacremente sulla tastiera "lucky" ebbe l'ardire di profferire:

Ma per favore... C'è da chiedersi come farebbe a funzionare questo, per esempio:

formatting link

--
Just because we serve you, doesn't mean we like you. 
News 2002 [v 2.07] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net
Reply to
Due di Picche

Ho guardato velocemente il codice sorgente. Implementa un timer di windows (SetTimer()) con intervallo di 20mS (nel modulo MainFrm.cpp) e ad ogni intervallo esegue un blocco di letture tutte consecutive e alla massima velocit=E0 (ciclo for senza alcuna temporizzazione). Se tutto va bene pu=F2 garantire il numero di campioni al secondo desiderato, ma mai e poi mai la loro uniforme distribuzione nel tempo. Non funziona come tu pensavi, perch=E9 usa un timer.

Stai cercando di dimostrare che windows =E8 un SO real time. Non lo =E8. D'altronde la microsoft non ha mai provato a farlo credere ....

Ciao.

lucky

Reply to
lucky

Pestando alacremente sulla tastiera "lucky" ebbe l'ardire di profferire:

Ed è quello che infatti ho detto io. Niente timer ma rilettura continua dello stato della porta...

Rotfl... Torna sulla terra. Non dobbiamo campionare un segnale video a chissà quale frequenza, ma lo stato di 4 pulsanti per un giochino a quiz. Se ritieni che sia necessario impostare un circuito elettronico completo di latch, etc... etc... allora non vale più la pena di usare un pc. Basta un led sulle uscite per indicare il vincitore. A volte, pur di fare i pignolini, si perde il senso delle cose, non trovi?

--
If a program is useless, it must be documented.
News 2002 [v 2.07] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net
Reply to
Due di Picche

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.