Vous ne pouvez pas savoir à quel endroit du do loop l'interruption va se produire. Si c'est juste avant timer=0, ca va effacer le travail de L'interruption et comme il n'y a pas de setint, le START ne sera pas pris en compte...J'ai peut-être des bêtes questions :
qu'est-ce qui empêche de mettre timer=0 dans la boucle attente start -> le if temps>32768 n'est plus utile alors vu qu'il correspond au dépassement de la valeur word ?
Les 2 setint après chaque boucle ne sont-ils pas inversés ?
J'ai évidemment testé + en mettant Barriere2=%0000010 afin de voir si j'avais bien compris : le start sur B.0 et stop sur B.1
Vu que les 2 barrières étaient sur B.0 cela fonctionnais évidemment avec votre code.
Le résultat :
Edit : j'ai fait le test dans le simulateur du programme, demain, si j'ai le temps, je le fait avec un 28x2 (sans quartz malheureusement) + le générateur d'impulsion avec un 18m2Code:T1=14 T2=533 chrono=519 T1=14 T2=505 chrono=491 T1=14 T2=1249 chrono=1235 T1=14 T2=451 chrono=437 T1=14 T2=336 chrono=322 T1=14 T2=710 chrono=696 T1=14 T2=409 chrono=395
Oui : autant pour moi : les setint sont inverses (sauf si on va de b2 vers b1...)
Oui : les variables barrières devraient permettre de prendre en compte les différents cas de figure.
Si vous faites des tests, mettez aussi en // le chrono de référence...
Last edited: