Salut,
je testerais un truc comme ça :
Code : Tout sélectionner
(* test du chien de garde *)
if %S0 or %S1 or %S13
then
nb_max := 0;
nb_tours := 1_000_000;
end_if;
for index in 0 to nb_tours by 1
do
nb_max := nb_tours;
if %S11
then
nb_tours := nb_tours - 10_000; (* pour éviter de faire planter l'API *)
break;
end_if;
end_for;
nb_tours := nb_tours + 1_000;
A chaque cycle de programme, on fait un certain nombre de tours de boucle (nb_tours), puis on prépare le prochain cycle à faire un tour de plus.
On mémorise le nombre de tours maxi pour garder une trace du nombre de tours nécessaires pour déclencher le chien de garde, histoire de voir...
Avec le simulateur, ça bloque à 9_033_000 tours chez moi, pour une période de 10 ms sur la tâche MAST.