Aller au contenu

Compteur millisecondes en C [Pas de C++]


yuyugs84

Messages recommandés

Salut

Je modifie donc complétement mo post...

config de départ :

Je fais des essais sous un outil de test d'automates indus...

Cet outil me permet de créer des composants de test (pattes d'entrées, pattes de sorties + code du composant)

Le language de programmation de ces composants est le C (pas de C++)

le but :

Simuler le déplacement d'un chariot,

ce chariot avance d'un pas toutes les 5ms...

Arrivé à 90% de sa prorgression, celui-ci ralentit : 10ms/pas

Arrivé à 100%, il met une patte de sortie à 1 pour signaler l'arrivée en butée...

mon prob : générer un compteur +1 ayant un pas de 5ms puis de 10ms...

Ca me semblait tout simple et pourtant...

Lien vers le commentaire
Partager sur d’autres sites

Un select avec un timeout ???

Le select te permet de reprendre la main si tu as une activité sur un file descriptor (un fichier en gros), donc ca peut être utile si ce que tu "attends" est un fichier (ou un socket), pour les interfaces graphiques on peut aussi utiliser les 2 a la fois (le select qui a dans sa liste un file descriptor de l'interface pour qu'elle puisse faire son "boulot" :francais: )

J'ai été assez clair? (j'ai pas pris mon café encore, donc bon... :byebye: )

Sinon le threads c'esr bien aussi, mais attention aux resources partagés, perso, au moment où je peux faire avec un select j'évite les threads (trop galère à débugguer les threads :zarb: ), sauf quand c'est un besoin de perf ou vraiment une appli distribuée (là bon c'est pas pareil ;) )

Lien vers le commentaire
Partager sur d’autres sites

Java + JNI roh :p

(moi j'aime bien que mes applis soient portables, et qu'on me parle pas de GTK)

<HS>

Héhé, perso mes applis n'on pas souvent des interfaces :transpi:

Sinon, JNI c'est bien alors? </HS>

Sinon pour en revenir au sujet (qui a changé :D ) tu as une structure timeval

NAME

sys/time.h - time types

SYNOPSIS

#include <sys/time.h>

DESCRIPTION

The <sys/time.h> header defines the timeval structure that includes at least the following members:

time_t tv_sec seconds

suseconds_t tv_usec microseconds

(time_t c'est u32 ou u64 déjà?), enfin bref, un printf te le dira :p, donc tu fais un gettimeofday(struct timeval *tv,

struct timezone *tz); (tz tu mets NULL, tu t'en fiches un peu ici), ca rempli ton tv. Ensuite tu créé un autre tv pour ton futur interval (alors je ne sais plus si le select prend un diff de tv ou le tv auquel il doit se reveiller, à tester donc.. :francais: ), sinon sleep (mais je sais pas s'il prends un tv).

Ensuite, pour la boucle, à toi de jouer :chinois:

J'ai été assez clair ? :mad2::transpi:

Pour une réponse avec thread, je laisse la main :chinois:

(5ms ca va pas être tendu à respecter en Java? déjà qu'en C ca va être chaud...) c'était pas un :troll:, juste une demande :yes:

Lien vers le commentaire
Partager sur d’autres sites

java... utilisez des vrais langages (python, perl, ruby, ...).

Pour le sleep précis, il y a usleep et nanosleep.

Pour les processus : fork, vfork, clone.

Pour les threads : pthread_create, pthread_join, pthread_exit etc.

Si tu as la chance d'avoir un BSD (ou un autre Unix comme Linux ou Mac), regarde les manpages (en français).

Sinon tu en a en ligne (en anglais) : http://linux.ctyme.com/man/man3694.htm

http://linux.ctyme.com/man/man2128.htm

etc...

http://linux.ctyme.com/cgi-swish/linuxdoc.cgi

Lien vers le commentaire
Partager sur d’autres sites

tu parle de python quand celui-ci permet de faire du code java? de perl quand celui-ci est lié à la raison social de ses utilisateurs? :) (et puis, pour une application durable (ie: autre que web), le reference counting (= garbage collector de python & perl) c'est performant mais bonjour la perte de mémoire dans les cycles. (ensuite, pas fait ni l'un ni l'autre, et pas édutier Ruby)

(mais Java c'est Eclipse surtout :reflechis:)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...