Composant pour le temps réel

AmineTheGreat Messages postés 47 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 28 décembre 2010 - 3 juil. 2007 à 17:54
AmineTheGreat Messages postés 47 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 28 décembre 2010 - 17 juil. 2007 à 12:51
bonjour,
est ce qu'il n'y a pas un composant ou une classe qui permet une plus grande puissance que les Threads car il semble que ces derniers ne marche pas toujours et bloque mon application.

"Si tu veux du miel, résiste au piqure des abeilles"

11 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
3 juil. 2007 à 18:57
c'est pas vraiment le fait qu'on utilise des threads ou pas qui rend l'application puissante, mais les methodes et le code que l'on ecrit.

d'ailleur, je ne vois pas le rapport avec la programmation RT qui necessite enormement de puissance et aussi des optimisations trés poussées de toute les partie dynamique du code.

Le précalculé, lui, prend moins de ressources et permet d'augmenter considerablement la reactivitée d'un programme, il allourdit egalement ce dernier.
mais a choisir, il faut parfois savoir faire un savant melange de précalculé et de realtime, pour obtenir un bon compromis poid/puissance.

par exemple, calculer des sinus et cosinus en temps réel vas enormement rallentir les calculs. on peu donc utiliser des tableaux précalculés de sinus et de cosinus pour les valeurs constantes et reduire ensuite la complexitée des calculs pour ameliorer les performances.
on vas donc utilisé une partie précalculée et une partie temps réel, qui serat plus perfomante grace aux précalculs.
0
AmineTheGreat Messages postés 47 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 28 décembre 2010
3 juil. 2007 à 19:08
bjr,
moi j'ai fait une application qui lit les données envoyées sur le port parallèle et qui les envoie dans un fichier. je remarque que dans ce fichier il manque bcq d'informations utiles. si tu veux je peux t'envoyer la partie du code qui me mets en doute !!
merci et a+.

"Si tu veux du miel, résiste au piqure des abeilles"
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
3 juil. 2007 à 19:51
Quelle est la fréquence d'échantillonage que tu souhaites ?
Par défaut il faut savoir que Windows se réserve dans les 10 à 15ms pour effectuer ses tâches.
Donc si tu veux "diminuer" ce temps, et de la même façon augmenter tes acquisitions, il faut que tu définisses la priorité de ton thread à une valeur supérieure à tpNormal (tpHigher , tpHighest  ou voire tpTimeCritical ), MAIS ATTENTION, auquel cas le système paraitra de plus en plus bloqué, car tu ne lui laisseras de moins en moins de temps pour pouvoir gérer l'affichage, la souris, etc...

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
3 juil. 2007 à 21:36
Salut,
Ce serait une erreur de croire que les Threads donne de la puissance. Au contraire, la multiplication des threads provoque une dégradation rapide des performances de la machine.

Toute la puissance est dans le code, comme a dit Foxi.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AmineTheGreat Messages postés 47 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 28 décembre 2010
4 juil. 2007 à 10:50
j'ai une fréquence d'échatillonnage de 8KHz donc je dois avoir les données avec un débit de 8Kbits/s dans mon port parallèle ces données je dois les envoyer vers un fichier wave mais le truc ces qu'elles ne sont pas toutes envoyées...

"Si tu veux du miel, résiste au piqure des abeilles"
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
4 juil. 2007 à 17:06
Salut,

Question récurrente qui n'a pas de réponse ultime...

L'un des gros points qui fait à mon avis que Windows est pas temps réel du tout, c'est l'interruptions (IRQ0) qui lancent l'execution du code de l'ordonnanceur(cf bas de cette page). L'ordonnanceur sélectionne thread suivant à executer, et si on met une grosse priorité, il choisirat plus souvent le notre, mais pas systèmatiquement. Et le code de l'ordonnanceur consomme aussi du temps CPU.

Les IRQ0 sont générés par un PIT, et il semble possible de modifier sa fréquence par soft. J'aurais bien envie d'essayer un de ces 4 !
0
AmineTheGreat Messages postés 47 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 28 décembre 2010
5 juil. 2007 à 13:45
"Si tu veux du miel, résiste au piqure des abeilles"
0
AmineTheGreat Messages postés 47 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 28 décembre 2010
5 juil. 2007 à 19:10
bjr,
si je programme mon application (que j'ai déjà réalisé) sous un autre environement comme le labview est ce dernier va me parmettre de recupérer toutes les données même si j'ai une fréquence de 8Khz de données qui arrive sur mon port parallèle.
"Si tu veux du miel, résiste au piqure des abeilles"
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 juil. 2007 à 19:22
Ouaich, ça paraît une bonne idée ça.
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
8 juil. 2007 à 11:25
Les changements de contexte processeur aussi bouffent des ressources - qqs milliers de cycles a moins d'avoir du multiproc, mais là c'est le partage des E/S qui va poser problème.

Ce qui m'échappe, c'est que si tu veux créer un wav (format son), pourquoi passer par un port parallele, alors qu'un carte son se charge de ca en hard ?

Comme le précise Rt15, y a strictement rien de temps réel sous zindoz, et meme sous xp, t'as aucun controle sur le(s) ordonnaceur(s) disponible(s).
0
AmineTheGreat Messages postés 47 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 28 décembre 2010
17 juil. 2007 à 12:51
bjr,
maitenant je passe par la carte son et cela marche très bien ! il me reste jsute une chose à faire c'est de controler l'enregistrement du son automatiquement et ça ce que j'arrive pas à faire car il faut que je mette les données dans un buffer avant de les enregitrer sur le fichier wav !
a++.

"Si tu veux du miel, résiste au piqure des abeilles"
0
Rejoignez-nous