je vous mets ci-dessous mon script SIOC pour com1 nav1, le souci que j'ai, c'est que lorsque je fais varier les décimales de la fréquence COM1 celles de la NAV1 varient également. Quelqu'un serait-il en mesure de m'aider?
- Code: Tout sélectionner
Var 0800, Value 18 // Init entiers COM1 = 118
{
CALL V0814
}
Var 0804, Value 0 // Init décimales COM1
{
CALL V0814
}
Var 0805, name SW_COM_NAV_ENT, Link IOCARD_SW, Input 24 // SWITCH COM1 NAV1
ENTIERS
Var 0806, Link IOCARD_ENCODER, Input 40, Aceleration 2, Type 2 // entiers COM1
{
IF V0805 = 1
{
V0800 = ROTATE 18 ,35 ,V0806
}
ELSE
{
V0866 = ROTATE 8 ,17 ,V0806
}
}
Var 0808, Link IOCARD_ENCODER, Input 42, Aceleration 2, Type 2 // décimales COM1
{
IF V0805 = 1
{
L0 = V0808 * -25
V0804 = V0804 - L0
IF V0804 > 975
{
V0804 = 0
}
IF V0804 < 0
{
V0804 = 975
}
ELSE
{
L0 = V0808 * -50
V0868 = V0868 - L0
IF V0868 > 950
{
V0868 = 0
}
IF V0868 < 0
{
V0868 = 950
}
}
}
}
Var 0809, name SR_Com1, Link SUBRUTINE // Sous Routine Com1
Var 0810, Link IOCARD_DISPLAY, Digit 5, Numbers 5 // affichage COM1
Var 0812, Link FSUIPC_OUT, Offset $034E, Length 2 // Envoi COM1 à FS
Var 0814, Link SUBRUTINE // MONTAGE FREQ COM_1
{
L0 = V0800 * 1000
L0 = L0 + V0804
V0810 = DIV L0 ,10
V0810 = TRUNC V0810
V0812 = TOBCD V0810 // TRANSFORMATION DE DEC A BIN
}
Var 0866, Value 10 // ENTIERS NAV_1 VALEUR INITIALE 110
{
CALL V0878
}
Var 0868, Value 300 // DECIMALES NAV_1 VALEUR INITIALE 300
{
CALL V0878
}
Var 0874, Link IOCARD_DISPLAY, Digit 0, Numbers 5 // SORTIE DISPLAYS NAV_1
Var 0876, Link FSUIPC_OUT, Offset $0350, Length 2 // ENVOI NAV_1 A FS
Var 0878, Link SUBRUTINE // MONTAGE NUMERO NAV_1
{
L0 = V0866 * 1000
L0 = L0 + V0868
V0874 = DIV L0 ,10
V0874 = TRUNC V0874
V0876 = TOBCD V0874 // TRANSFORMATION DE DEC A BIN
}