Petit test de connaissances:
Q1 - peut-on coder les entrées d'une Master ?

Q2 - si oui pourquoi ?
Q3 - si oui comment faire ?

Q4 - si oui comment programmer cela dans plusieurs fichiers.txt utilisant les mêmes entrées ?


Réponse demain ...

// *********************************************
// * Rotary BCD for Autobrake By Chtipilot *
// *********************************************
// * FileName : Rot_AutoBrake_BCD.txt
// * Date : 01/11/2010
// Utilisation d'un rotary 12 positions codé BCD par diodes
// Using BCD coding for twelve positions Rotary with Diode (1N4148)
// Nota: les entrées MASTER n'ont pas besoin de se suivre
// Note: following MASTER's Input It's not necessary// Exemple: rotary Autobrake
//// LO, L1, L2 ne peuvent prendre que la valeur 0 ou 1 (cf SWITCH et DIODES)
// &Rot_AB_tmp (Variable Rotary_AutoBrake_temporaire) contient le code BCD complet [ L2x100 ]+[ L1x10 ]+[ L0 ]
//*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*
Var 0946, name Rot_AB_BCD1, Link IOCARD_SW, Device 1, Input 50 // Entrée IOcard pour AutoBrake BCD Input 1
{
CALL &Routine_Rot_AB
}
Var 0947, name Rot_AB_BCD2, Link IOCARD_SW, Device 1, Input 45 // Entrée IOcard pour AutoBrake BCD Input 2
{
CALL &Routine_Rot_AB
}
Var 0948, name Rot_AB_BCD3, Link IOCARD_SW, Device 1, Input 53 // Entrée IOcard pour Autobrake BCD Input 3
{
CALL &Routine_Rot_AB
}
Var 1000, name Routine_Rot_AB, Link SUBRUTINE // SUBRoutine Rotary autobrk_BCD: compose le code BCD puis défini la position Autobrake pour FSX
{
L0 = &Rot_AB_BCD1 // pour unité
L1 = &Rot_AB_BCD2 * 10 // x10 pour les dizaines
L2 = &Rot_AB_BCD3 * 100 // x100 pour les centaines
&Rot_AB_tmp = L0 + L1 // addition unité+dizaine
&Rot_AB_tmp = &Rot_AB_tmp + L2 // addition précédente + centaine = &Rot_AB_tmp contient maintenant le code BCD
IF &Rot_AB_tmp = 1
{
&FS_AutoBrake = 0 // &Rot_AB_tmp = 001 = Position RTO
}
ELSE
{
IF &Rot_AB_tmp = 10 // &Rot_AB_tmp = 010 =Position OFF
{
&FS_AutoBrake = 1
}
ELSE
{
IF &Rot_AB_tmp = 11 // &Rot_AB_tmp = 011 (input3=0, input2=1, input1=1) =Position 1
{
&FS_AutoBrake = 2
}
ELSE
{
IF &Rot_AB_tmp = 100 // &Rot_AB_tmp = 100 (input3=1, input2=0, input1=0) =Position 2
{
&FS_AutoBrake = 3
}
ELSE
{
IF &Rot_AB_tmp = 101 // &Rot_AB_tmp = 101 (input3=1, input2=0, input1=1) =Position 3
{
&FS_AutoBrake = 4
}
ELSE
{
IF &Rot_AB_tmp = 110 // &Rot_AB_tmp = 110 (input3=1,input2=1,input1=0) =Position MAX
{
&FS_AutoBrake = 5
}
}
}
}
}
}
}
Var 1001, name Rot_AB_tmp // Rotary AB tmp
chtipilot a écrit:Hello pierre,
Les entrées sont bien représentées dans le bon sens de droite à gauche soit dans le même ordre que les bits de poids faible et fort et la lecture binaire d'un code.
pierre01 a écrit:Salut Jean Louis,
Très astucieux, mais je pense qu'il faut que tu inverses le "A" et le "B" dans ton explication non ?
chtipilot a écrit:le bouton 1 ça donne un code 01 dans SIOC ( gnd -> A)
le bouton 2 ça donne un code 10 dans SIOC (Gnd -> B)
Retourner vers Cartes Master & USB-Expansion
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités