|
|||||||
|
|
|
![]() |
|
|
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 09: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 18: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 18: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: 22:33.



















