FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 16:57

» Roues dentées
par jean_debord Aujourd'hui à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 NUMBER_TICKS et PAUSE

Aller en bas 
AuteurMessage
Marc

avatar

Nombre de messages : 803
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: NUMBER_TICKS et PAUSE   Sam 11 Fév 2017 - 21:01

Bonjour à tous !

Sur mon ordinateur, la PAUSE minimum possible est de 16 ms.

Code:
dim temps1,temps2,resultat
temps1 = NUMBER_TICKS

pause 1 : ' <= à moduler suivant vos désirs !

temps2 = NUMBER_TICKS
Resultat=(temps2-temps1)/1000
print "Durée : "+str$(resultat)+" seconde(s)"

PAUSE 1 me retoune comme résultat 0.016 seconde  Crying or Very sad

Jack a dit :  Very Happy



Je fais un petit test :

Code:
dim temps1,temps2,resultat

temps1 = NUMBER_TICKS
temps2 = temps1 + 2 : ' délai de 2 millisecondes

WHILE NUMBER_TICKS < temps2
END_WHILE

temps2 = NUMBER_TICKS
Resultat=(temps2-temps1)
print "Durée : "+str$(resultat)+" milliseconde(s)"

affraid résultat 15 ms au lieu de 2 ms ! affraid

Ai-je fait une erreur ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: NUMBER_TICKS et PAUSE   Sam 11 Fév 2017 - 22:28

Salut marc37

Non, tu n'as pas fait d'erreur, panoramic est synchronisé à 60 frame/seconde en interne. Impossible de modifier cela!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5980
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: NUMBER_TICKS et PAUSE   Sam 11 Fév 2017 - 23:10

Changez PAUSE par WAIT et constatez par vous-même


La commande PAUSE N arrête l'exécution du programme pendant N millisecondes. Les actions en attente sont effectuées.
La commande WAIT N gèle l'exécution du programme pendant N millisecondes. Les actions en attente ne sont pas effectuées.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: NUMBER_TICKS et PAUSE   Sam 11 Fév 2017 - 23:27

Je pense que marc37 veut gérer du temps à la milliseconde près. Mais le temps de synchronisation d'éxécution des commandes est de 16 ms alors que le taux de rafraichissement de l'affichage est de 150 images par seconde(à vide, sur mon ordinateur)
Code:
dim t,tmp%,oldtmp%,cpt

for t=1 to 10
   cpt=0
   oldtmp%=number_ticks
   repeat
      cpt=cpt+1
      tmp%=number_ticks
   until tmp%>oldtmp%
   print "temps d'éxécution des commandes: ",tmp%-oldtmp%," millisecondes pour  ",cpt," frames/seconde"
next t
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 803
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 1:29

Hélas, avec WAIT c'est le même problème ! Crying or Very sad

Que ce soit NUMBER_TICKS ou WAIT ou PAUSE, je ne peux pas descendre en dessous des 15ms.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6302
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 11:02

Bonjour Marc,

Alors utilise une méthode plus 'bestiale' pour faire une pause:
Code:
FOR i% = 1 TO n
En faisant varier le nombre n tu peux ajuster à la durée voulue, si petite soit-elle, mais c'est empirique, il faut faire ça par tâtonnements.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 11:15

Attention avec une telle boucle ! Il faut au moins placer un "DISPLAY 0" dans la boucle, afin de ne pas bloquer le système !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Marc

avatar

Nombre de messages : 803
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 11:54

Merci à tous !

Oui, JL35, c'est ce que j'ai dû employer pour faire varier la vitesse de défilement de l'univers sans fin de ce matin :
http://panoramic.free-boards.net/t5131-univers-sans-fin#62856
2ème post celui de 9h15.
j'ai fait une boucle variable asservie à la positon de la souris.

@Klaus
Je viens de faire l'essai d'ajouter DISPLAY 0 dans la boucle : (32)Illegal instruction en retour. Crying or Very sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 11:58

Oups... désolé. Simplement DISPLAY, sans paramètres !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



Nombre de messages : 6302
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 12:52

Parfois oui, mais dans le cas présent je ne suis pas sûr que le Display soit obligatoire...
en tout cas je l'utilise sans display et sans problème.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 13:18

Essaie de faire tourner autre chose en même temps...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: NUMBER_TICKS et PAUSE   Lun 13 Fév 2017 - 14:25

@Marc37
j'ai retrouvé dans mes archives, un code que je remet au goût du jour. Il permet de concevoir des boucles d'attente à la milliseconde près!
Code:
' https://msdn.microsoft.com/fr-fr/library/windows/desktop/dn553408%28v=vs.85%29.aspx

' fonctions/commandes de comptage haute résolution du kernel32
dim kernel32%
kernel32%=3
LIBRARY kernel32%,"kernel32"
'
function "perf_timer_exist","QueryPerformanceCounter",kernel32%,"I","stdcall"
' ex.: null%=perf_timer_exist(adr(float))
'
command "perf_timer","QueryPerformanceCounter",kernel32%,"I","stdcall"
' ex.: perf_timer adr(float)
'
command "perf_frequency","QueryPerformanceFrequency",kernel32%,"I","stdcall"
' ex.: perf_frequency adr(float))



' le résultat du compteur et de la fréquence doivent être stocké dans une variable de type "float"
dim frequency,cpt_start,cpt_end
dim present%,null%,result

' vérifie que le compteur haute résolution existe
present%=perf_timer_exist(adr(cpt_start))
if present%<>0
   perf_frequency adr(frequency)   :' fréquence du compteur haute résolution
else
   print "compteur haute résolution inexistant."
end_if


      ' commence le chronométrage
      perf_timer adr(cpt_start)

      ' activité à chronométrer
      pause 1

      ' termine le chronométrage
      perf_timer adr(cpt_end)


' résultat dans une variable de type "float", il est exprimé en seconde
result=(cpt_end-cpt_start)/frequency
print result," seconde(s)"

' il faut le multiplier par 1000 pour l'obtenir en milliseconde
result=int(result*1000*100)/100   :' 2 chiffres après la virgule

' affichage
print "soit : ",result," millisecondes"



' simulation de la commande wait : un WAIT précis à la milliseconde!
dim w_time
w_time=500   :' millisecondes
'
perf_timer adr(cpt_start)
cpt_start=cpt_start+(frequency*(w_time/1000))
repeat
   perf_timer adr(cpt_end)
until cpt_end>=cpt_start
print : print "WAIT ",w_time," émulé!"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 803
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: NUMBER_TICKS et PAUSE   Ven 17 Fév 2017 - 0:22

Merci Silverman !

Je vais faire des essais... bounce
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: NUMBER_TICKS et PAUSE   

Revenir en haut Aller en bas
 
NUMBER_TICKS et PAUSE
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Le service de rattrapage TV en mode pause et pas seulement?
» [Résolu] Stopper puis rejouer un diaporama
» Usine de black974[Pause durée non détérminé]
» Parrainage... ou comment le filleul se fait avoir
» Page d'Accueil pour Rpg Vampire Knight [Lixyr=en pause]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: