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
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 NUMBER_TICKS et PAUSE

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Marc



Nombre de messages : 551
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: NUMBER_TICKS et PAUSE   Sam 11 Fév 2017 - 23: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 : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 0: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 : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 1: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 : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 1: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



Nombre de messages : 551
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 3: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 : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 13: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 : 10259
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 13: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



Nombre de messages : 551
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 13: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 : 10259
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 13: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 : 6018
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 14: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 : 10259
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: NUMBER_TICKS et PAUSE   Dim 12 Fév 2017 - 15: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 : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: NUMBER_TICKS et PAUSE   Lun 13 Fév 2017 - 16: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



Nombre de messages : 551
Age : 56
Localisation : TOURS
Date d'inscription : 18/03/2014

MessageSujet: Re: NUMBER_TICKS et PAUSE   Ven 17 Fév 2017 - 2: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
Voir le sujet précédent Voir le sujet suivant 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: