Page 2 sur 3

Re: tuto sioc la fonction TIMER

MessagePosté: Mar 5 Avr 2016 21:34
de mameloose
effectivement je viens de me rendre compte qu'une fois un timer lancé on ne peux pas l'arreter je cherche la solution jvous tient au courant ....

Re: tuto sioc la fonction TIMER

MessagePosté: Mer 6 Avr 2016 20:27
de mameloose
wwoooouuuh ca y est apres une grosse prise de tete jai trouvé une solution mais c'est une usine a gaz ! gratgrat


voila le code

Code: Tout sélectionner
Var 0001, name VALEUR, Value 0
{
  IF &VALEUR = 1
  {
    CALL &incremen
  }
  IF &VALEUR = 0
  {
    CALL &decrement
  }
}

Var 0002, name SERVO, Link USB_SERVOS, Output 1, PosL 0, PosC 512, PosR 1023

Var 0003, name incremen, Link SUBRUTINE
{
  &montee = TIMER 200 ,1 ,5
}

Var 0004, name decrement, Link SUBRUTINE
{
  &descente = TIMER 0 ,-1 ,5
}

Var 0005, name montee
{
  IF &VALEUR = 1
  {
    &descente = &montee   
    &SERVO = &montee   
  }
  IF &VALEUR = 0
  {
    &montee = &descente   
    &SERVO = &descente   
  }
}

Var 0006, name descente



en gros la variable qui sappelle "valeur" represente la batterie par exemple donc allumée elle est egale a 1 et eteinte a 0

ici si jallume ma battery la servo prend bien la montée que je lui demande mais si je met a zero AVANT quelle atteigne la position haute alors elle redescend bien au lieu de stagner ou faire nimporte quoi comme chez Pierre roicouronne

Re: tuto sioc la fonction TIMER

MessagePosté: Jeu 7 Avr 2016 07:04
de fab
Ok, génial ! je note et ne manquerai pas de tester aussi !

Re: tuto sioc la fonction TIMER

MessagePosté: Jeu 7 Avr 2016 10:26
de pierre01
Merci pour ton aide, je regarde également !
J'utile moi aussi une variable "courant" qui tient compte de "batterie ON ou OFF" , ce serait donc dans la façon de l'utiliser ???

Re: tuto sioc la fonction TIMER

MessagePosté: Jeu 7 Avr 2016 10:28
de mameloose
normalement oui ! test le code dans iocp tu met la valeur 1 pour valeur tu vas voir la servo monter et si tu met 0 avant quelle finisse elle va redescendre

Re: tuto sioc la fonction TIMER

MessagePosté: Jeu 7 Avr 2016 10:33
de mameloose
aie petit soucis je viens de retester le code ... si j'attend que la servo atteigne son point haut puis je passe la valeur a zero elle ne descend plus ....

jvais trouver la modif qui va bien ...

Re: tuto sioc la fonction TIMER

MessagePosté: Jeu 7 Avr 2016 10:37
de mameloose
c'est bon j'ai fais la modif qui va bien voici le code final !

Code: Tout sélectionner
Var 0001, name VALEUR, Value 0
{
  IF &VALEUR = 1
  {
    CALL &incremen
  }
  IF &VALEUR = 0
  {
    CALL &decrement
  }
}

Var 0002, name SERVO, Link USB_SERVOS, Output 1, PosL 0, PosC 512, PosR 1023

Var 0003, name incremen, Link SUBRUTINE
{
  &montee = TIMER 200 ,1 ,5
}

Var 0004, name decrement, Link SUBRUTINE
{
  &descente = TIMER 0 ,-1 ,5
}

Var 0005, name montee
{
  IF &VALEUR = 1
  {
    &descente = &montee   
    &SERVO = &montee   
  }
  IF &VALEUR = 0
  {
    &montee = &descente   
    &SERVO = &descente   
  }
}

Var 0006, name descente
{
  IF &VALEUR = 1
  {
    &descente = &montee   
    &SERVO = &montee   
  }
  IF &VALEUR = 0
  {
    &montee = &descente   
    &SERVO = &descente   
  }
}

Re: tuto sioc la fonction TIMER

MessagePosté: Dim 10 Avr 2016 11:16
de arcc
Bonjour à tous
J'ai besoin d'un peu d'aide.
J'ai appliqué le tuto pour faire varier plus lentement l'aiguille de mes deux servo. Ca fonctionne très bien dans le sens croissant (a l'allumage de la batterie) mais en fin de vol , quand je coupe l'alimentation, les deux aiguilles ne reviennent pas à o.
Je ne sais pas trop si il faut rentrer un -1 (comme indiqué dans le premier message pour la decrementation).

Mon bout de code
Code: Tout sélectionner
Var 600, name Hyd_Main_Press, Link FSUIPC_INOUT, Offset $9224, Length 4 // Hydraulic Servo Right
{
    L0 = &Hyd_Main_Press * 0.77
    L1 = L0 + 170
    &Hyd_Main_svo = TIMER L1 ,1 ,10
}

Var 602, name Hyd_Main_svo, Link USB_SERVOS, Output 1, PosL 1, PosC 512, PosR 1023

Var 610, name Hyd_Brk_Press, Link FSUIPC_INOUT, Offset $9228, Length 4 // Hydraulic Servo Left
{
    L0 = &Hyd_Brk_Press * 0.756
    L1 = L0 + 164
    &Hyd_Brk_svo = TIMER L1 ,1 ,10
}

Var 612, name Hyd_Brk_svo, Link USB_SERVOS, Output 2, PosL 1, PosC 512, PosR 1023


Merci

Christian

Re: tuto sioc la fonction TIMER

MessagePosté: Dim 10 Avr 2016 11:43
de mameloose
salut Christian !

le probleme avec ton code c'est que tu as juste un incrementation ...


je ne connais pas les valeurs de tes offset mais tu devrais mettre des conditions IF du genre IF la valeur de carb est superieur a zero alors timer incremention de L1

et IF la valeur de carb est plus petite que 1500 ? (pour lexemple ) alors decrementation TImer de L1 -1 10

Re: tuto sioc la fonction TIMER

MessagePosté: Dim 10 Avr 2016 12:03
de mameloose
essaye ca au pire mais je te promet rien .....


Code: Tout sélectionner
Var 0600, name Hyd_Main_Press, Link FSUIPC_INOUT, Offset $9224, Length 4     // Hydraulic Servo Right
{
  L0 = &Hyd_Main_Press * 0.77
  L1 = L0 + 170
  &Hyd_Main_svo = TIMER L1 ,1 ,10
  &Hyd_Main_svo = TIMER L1 ,-1 ,10
}

Var 0602, name Hyd_Main_svo, Link USB_SERVOS, Output 1, PosL 1, PosC 512, PosR 1023

Var 0610, name Hyd_Brk_Press, Link FSUIPC_INOUT, Offset $9228, Length 4     // Hydraulic Servo Left
{
  L0 = &Hyd_Brk_Press * 0.756
  L1 = L0 + 164
  &Hyd_Brk_svo = TIMER L1 ,1 ,10
  &Hyd_Brk_svo = TIMER L1 ,-1 ,10
}

Var 0612, name Hyd_Brk_svo, Link USB_SERVOS, Output 2, PosL 1, PosC 512, PosR 1023