Toon posts:

[C++] Timer bouwen ??

Pagina: 1
Acties:

Verwijderd

Topicstarter
Kan iemand mij vertellen hoe ik een timer bouw in c++ van bijvoorbeeld 10sec

  • Koetjeboe
  • Registratie: Maart 2002
  • Laatst online: 17:38

Koetjeboe

Boe, zegt de koe

Ja, dat kan iemand je vertellen :P Maar wat heb je zelf al geprobeerd? Waar liep je vat? Etc, etc.

lees de faq dus maar

Ohhi - Familie foto's delen via een europees prive sociaal netwerk - Blubhub - IOS app om je aquarium bij te houden


Verwijderd

Aantal postings: 1

Lees de FAQ eens, en welkom.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Hoi, ik stel voor dat je eerst even deze topics doorneemt:
Welkom in P&W (FAQ-13/7/2002)
en
Welkom in P&W -> Quickstart om snel aan de slag te kunnen

Daarin vind je een aantal tips over hoe je een goed en duidelijk topic moet aanmaken hier in P&W. In de FAQ staat ook beschreven wat kan en niet kan in P&W en wat er van je verwacht wordt.

https://fgheysels.github.io/


Verwijderd

In het vervolg moet je wel even een betere formulering van je vraag verzinnen en ons in ieder geval het idee geven dat je het zelf al geprobeerd hebt.

This is your lucky day. Op mijn website staat een beetje code (zoek naar CTime) voor een prima timer : http://members.chello.nl/~f.eimers/

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Volgens mij is er geen enkele platform-independent implementatie van een timer... laat dus maar komen die extra info.

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

curry684 schreef op 23 september 2002 @ 01:08:
Volgens mij is er geen enkele platform-independent implementatie van een timer... laat dus maar komen die extra info.


mwoah, je kan met een lusje en het gebruik van time () toch een mooie wacht-functie maken ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Wirf
  • Registratie: April 2000
  • Laatst online: 11:05
Ik deed het laatst zo:

code:
1
2
3
4
5
6
7
8
9
void sig_alrm_handler() {
        //Do stuff here
        alarm(1);
}

main() {
      signal(SIGALRM, (void *) sig_alrm_handler);
      alarm(1);
}


werkt goed :)

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

ANSI 4.7.1.1 The set of signals for the signal function
The first argument passed to signal must be one of the symbolic constants described in the Run-Time Library Reference for the signal function. The information in the Run-Time Library Reference also lists the operating mode support for each signal. The constants are also defined in SIGNAL.H.
Niet portable dus, pech :)

Sowieso bestaat de alarm functie niet in de Windows-uitvoering van de C-runtime libs (according to VS.net MSDN).

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wirf schreef op 23 september 2002 @ 02:47:
Ik deed het laatst zo:

code:
1
2
3
4
5
6
7
8
9
void sig_alrm_handler() {
        //Do stuff here
        alarm(1);
}

main() {
      signal(SIGALRM, (void *) sig_alrm_handler);
      alarm(1);
}


werkt goed :)


helaas is alarm () geen ANSI C functie, dus het is nog maar de vraag of het wel werkt bij iedereen

.edit: curry: grrr :Y)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Wirf
  • Registratie: April 2000
  • Laatst online: 11:05
Ik weet dat die code niet echt portable is, maarja, topicstarter zegt ook niets over zn platform....

De code is trouwens geschreven voor/op een Linux machine

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

.oisyn schreef op 23 september 2002 @ 02:32:
mwoah, je kan met een lusje en het gebruik van time () toch een mooie wacht-functie maken ;)
C++:
1
2
3
4
5
6
7
#include <time.h>

void MySleep(int p_Seconds)
{
time_t  l_TargetTime = time(NULL) + p_Seconds;
while(l_TargetTime > time(NULL));
}

Geniaal gewoon :)

Professionele website nodig?


  • Wirf
  • Registratie: April 2000
  • Laatst online: 11:05
curry684 schreef op 23 september 2002 @ 03:17:
[...]

C++:
1
2
3
4
5
6
7
#include <time.h>

void MySleep(int p_Seconds)
{
time_t  l_TargetTime = time(NULL) + p_Seconds;
while(l_TargetTime > time(NULL));
}

Geniaal gewoon :)
Is dit niet een Busy-Wait? elke keer als je deze functie aanroept gebruik je 100% CPU :/

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Wirf schreef op 23 september 2002 @ 03:20:
Is dit niet een Busy-Wait? elke keer als je deze functie aanroept gebruik je 100% CPU :/
Echt? :z

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

:P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 16:55

johnwoo

3S-GTE

Voor Windows: SetTimer

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Wirf schreef op 23 september 2002 @ 02:47:
Ik deed het laatst zo:

code:
1
2
3
4
5
6
7
8
9
void sig_alrm_handler() {
        //Do stuff here
        alarm(1);
}

main() {
      signal(SIGALRM, (void *) sig_alrm_handler);
      alarm(1);
}


werkt goed :)
Kan het nog beter zo doen, dan werkt het beter tussen verschillende *nices:

void sig_alrm_handler(int sig) {
signal(SIGALRM, sigalrm_handler);
alarm(1);
}

Het verschilt namelijk per OS wat ze doen na een signal, sommige resetten de handler naar default, andere laten hem onveranderd (zoals jij aan nam) etc.
Volgens mij ondersteund elke *nix box op de wereld dit, dus redelijk portable. Maar niet naar windows misschien hehe :P

  • Wirf
  • Registratie: April 2000
  • Laatst online: 11:05
Zoijar schreef op 23 september 2002 @ 11:35:
[...]


Kan het nog beter zo doen, dan werkt het beter tussen verschillende *nices:

void sig_alrm_handler(int sig) {
signal(SIGALRM, sigalrm_handler);
alarm(1);
}

Het verschilt namelijk per OS wat ze doen na een signal, sommige resetten de handler naar default, andere laten hem onveranderd (zoals jij aan nam) etc.
Ah, ok, ik zal het meenemen :)
Volgens mij ondersteund elke *nix box op de wereld dit, dus redelijk portable. Maar niet naar windows misschien hehe :P
Misschien kan dit wel met Cygwin onder windows? ( http://www.cygwin.com/ )
Daar heb ik altijd goede ervaringen mee gehad.

Heeft sinds kort zijn wachtwoord weer terug gevonden!


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Over cygwin, Ja, het *kan* wel, maar het werkt niet ;) Ze hebben/hadden? nogal wat problemen met signal handling. Zou kreeg ik alleen het eerste signal, en dan stopte die er mee, ook na het terug zetten van de handler etc.
Pagina: 1