|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
[c] Programma per gestione parallela....
Qualche consiglio per ottimizzare questo programma perchè usare un ciclo che si ripete una marea di volte per controllare se l'ora impostata è uguale all'ora di accensione/spegnimento di un rele nn mi sembra molto ottimale.... Poi per uscire dal ciclo infinito ho usato kbhit() solo che avendo messo un delay per ritardare l'esecuzione del ciclo è difficile riuscire ad uscire... come posso risolvere?
Grazie a tutti P.S. allego il codice sorgente....
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) Ultima modifica di frizzo28 : 15-08-2006 alle 08:10. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
UP
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
![]()
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Il codice a dire il vero è un po' confuso...
![]() Il problema di kbhit() lo puoi risolvere così - anche se è un metodo un po' grezzo, ma non mi viene altro in mente... Codice:
int main(void) { int cycle = 1; /* ... */ while (cycle) { unsigned int x; _bios_timeofday(_TIME_GETCLOCK, &bios_time); /* ... */ for (x = 0; x < 900; x++) { cycle = (!kbhit()); if (!cycle) break; delay(10); } } /* ... */ }
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
![]()
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
Quote:
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
EDIT: sorry, doppio post... -_-'
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! Ultima modifica di DanieleC88 : 17-08-2006 alle 17:55. |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Per rispondere a frizzo28, potresti usare una array di strutture, tipo: Codice:
struct rele_time_info { unsigned int accensione_ore; unsigned int accensione_minuti; unsigned int spegnimento_ore; unsigned int spegnimento_minuti; }; int main() { struct rele_time_info tempi[10]; tempi[0].spegnimento_ore = 1; tempi[0].spegnimento_minuti = 35; /* e via dicendo */ return 0; }
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! Ultima modifica di DanieleC88 : 17-08-2006 alle 17:57. |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
Grazie mille ho risolto con le strutture come mi hai detto tu....
P.S. Questo è il sorgente completo...
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:26.