View Full Version : Realizzare un orologio in C
The DeViL's
18-04-2004, 16:06
ragazzi come posso realizzare un orologio/timer i C? aiutatemi grazie
Mhmmh...non c'è già ì'orologio di sistema ? Cosa deve fare il tuo...riportare semplicemente l'ora ?
The DeViL's
18-04-2004, 16:49
no tipo contare i secondi ecc ecc un timer + o -, per esempio contare qnt tempo il programma è in esecuzione
Prendi i secondi all'inizio i secondi alla fine e fai la differenza...
C'è un esempio dic odice qui (anche se l'argomento c'entra poco, guarda l'esempio di codice): http://forum.hwupgrade.it/showthread.php?s=&threadid=666664
fuku san
19-04-2004, 05:14
esiste un timer che venga aggiornato almeno ogni 10ms ? cioè che non sia quello del bios (quello che manda i timer tic ogni 55ms)
sotto windows98/me posso catturare i messaggi WM_TIMER ma la loro massima frequenza è quella dei timer tic del bios e non mi va bene,me ne servirebbero almeno 60 al secondo,18.2 non mi bastano
dal momento che il sistema shedula i propi processi a circa 10 ms se non che carico,
la tua necessita' di avere un timer cosi' preciso e' un problema.
non so bene ma innanzitutto dovresti impostare la priorita' molto alta.
dipende da cosa ci devi fare, perche' se per esempio il tempo e' un elemento critico,
scordatelo.
A meno di usare sistemi real-time come RTLinux o RTAI...
Originariamente inviato da fuku san
sotto windows98/me posso catturare i messaggi WM_TIMER ma la loro massima frequenza è quella dei timer tic del bios e non mi va bene,me ne servirebbero almeno 60 al secondo,18.2 non mi bastano
In un sistema non realtime la precisione di questi timer non è garantita... Ad esempio non è garantito che il messaggio WM_TIMER arrivi entro il thick successivo...
Qualcosa sul C e i segnali realtime:
http://www.lilik.it/~mirko/gapil/gapilsu156.html#x351-1990009.4.6
fuku san
20-04-2004, 20:48
Lo so,i messaggi WM_TIMER non sono precisi perchè il tuo processo potrebbe essere in stato di sospeso nel momento in cui si verifica un timer tick e ricevere il messaggio solo quando è rimesso in esecuzione
però io intendevo un timer di cui si può controllare manualmente il valore,ad esempio la funzione clock() del C te lo permette,ma ti da il valore aggiornato solo ogni 55ms e ti dice da quanti millisecondi il tuo prog. è in esecuzione,però viene aggiornato ogni 55ms,quindi dopo 10 ms il valore sarà ancora a 0,così come lo sarà anche a 54ms
io invece vorrei una versione di clock() che si aggiorni almeno ogni 10 ms e so che su windows nt-2000 è proprio così,ma sul 98 come si fa?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.