IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

[TPW] Incrémentation avec un vrai centième de seconde !


Sujet :

Turbo Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [TPW] Incrémentation avec un vrai centième de seconde !
    Bonjour!
    Alors je vais tenter d'expliquer au mieux ce que je veux faire! En gros je suis en train de programmer un jeu de billard et j'utilise pour les equations de vitesse de mes billes des exp(-alpha*t) puisque faut bien que la bille s'arrete un jour
    Bref, ma variable t est incrémenté (t:=t+dt...) et je voulais savoir s'il était possible de rendre ma variable t vraiment reel c'est a dire qu'au bout de 1 seconde de fonctionnement ma variable t soit a 1(pour une seconde).
    Donc lié ma variable t avec l'horloge du pc ou quelque chose comme ca, j'ai lu dans les tutoriels qu'il y avait des fonctions pour lire l'heure avec l'unit dos donc ...
    Je pense qu'il doit etre possible de faire quelque chose du type lire l'heure au l'execution et lui donné la valeur t0 puis donné a t la valeur 'heure exact'-t0.
    Quand je me relis je me comprend est-ce le cas pour vous?
    Si vous mourrez d'envie d'utilisez le smyley pour me repondre je comprendrais...

  2. #2
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Bonjour

    Il y a possibilité, sous DOS (au moins), d'avoir une variable auto-incrémentée 18,2 fois par seconde, soit toutes les 0,055 secondes environ. Il faut pour cela rediriger l'interruption 1Ch (qui découle de l'IRQ 0 utilisée par l'horloge système).

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    D'abord merci pour la réponse rapide, je post en me couchant j'ai la réponse en me levant!

    Pour ceux qui viendront chercher une réponse à leuirs problemes,
    Moi j'utilise Turbo pascal for windows et dans les unités proposés il y a une unité (enfin un .pas a compiler pour avoir le .tpu) qui s'appelle winprocs.
    Dans cette unité il y a une fonction qui s'appelle getcurrenttime qui vous renvoi le temps en millisecondes depuis lequel vous avez allumez windows. Ca fait une reference de temps en milliseconde à vous de trafiquer pour en faire quelque chose!

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut exemple de program
    J'ai pensé qu'un exemple pourrait aider c'est une compteur de seconde qui s'arrète au bout d'une minute.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    program chrono;
    uses wincrt,winprocs;
    var t0,t:real;i:integer;
     
    begin
    i:=0;
    t0:=getcurrenttime;
    while t<=60 do
          begin
               t:=(getcurrenttime-t0)/1000;
               if (t-i)>1 then begin
                                       writeln(t:2:1);
                                       i:=i+1;
                                    end;
          end;
    end.

  5. #5
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    En effet, ce type de solution sous un environnement Windows est à privilégier je pense.
    Je poste un exemple illustrant la méthode de la redirection de l'interruption 1Ch ci-dessous pour ceux que ça intéresse (j'ai testé sous XP, ça a l'air de fonctionner ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    program Exemple1C;
     
    uses
      Dos,Crt;
     
    var
      ancien1C: pointer;
      compteur: longint;
      c: char;
     
    procedure nouveau1C; interrupt;
    begin
      compteur := compteur + 1;
    end;
     
    begin
      compteur := 0;
      GetIntVec($1C,ancien1C);
      SetIntVec($1C,@nouveau1C);
     
      Writeln('Appuyez sur ESC pour quitter');
      repeat
        c := ReadKey;
        writeln('Compteur: ',compteur,' soit environ ',(compteur / 18.2):0:2,' secondes');
      until c = #27;
     
      SetIntVec($1C,ancien1C);
    end.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. La puce NVIDIA Tegra combinée avec un vrai GPU
    Par dourouc05 dans le forum CUDA
    Réponses: 0
    Dernier message: 20/03/2013, 12h59
  2. La puce NVIDIA Tegra combinée avec un vrai GPU
    Par dourouc05 dans le forum Actualités
    Réponses: 0
    Dernier message: 20/03/2013, 12h59
  3. overfow auto avec des vrai bout d'absolute dedans
    Par denisvignes dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/05/2008, 18h22
  4. [Stade de foot]Avec un vrai Dieu vivant
    Par Médiat dans le forum Musique
    Réponses: 18
    Dernier message: 21/07/2006, 14h10
  5. Réponses: 6
    Dernier message: 25/01/2006, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo