Page 1 sur 1

Economiser un input

MessagePosté: Lun 27 Fév 2012 19:44
de algue14
Bonjour

Je n'ai pas encore commencé à programmer avec SIOC alors indulgence ecroulerire

Voilà,je suis en train de concevoir mon EFIS et j'ai un problème pour finaliser mon circuit imprimé.
il y a 37 inputs donc 1 de trop pour 4 groupes de 9 et ça complique très sérieusement le câblage tapebaton
Alors je me suis dit qu'il est peut-être possible d’économiser cette entrée sur le ND mode, en partant du principe
que s'il n'est pas dans une des 3 positions il est forcément dans la quatrième.
Voici la partie du script OGS que je pense utiliser

//------------------------------- ND MODE ------------------------------------

Var 6208, Link IOCARD_SW, Input 18, name swCNDMAP
{
IF &swCNDMAP = 1
{
&CPTflags = CLEARBIT 8
&CPTflags = CLEARBIT 9
}
}
Var 6209, Link IOCARD_SW, Input 24, name swCNDVOR
{
IF &swCNDVOR = 1
{
&CPTflags = SETBIT 8
&CPTflags = CLEARBIT 9
}
}
Var 6210, Link IOCARD_SW, Input 23, name swCNDAPP
{
IF &swCNDAPP = 1
{
&CPTflags = CLEARBIT 8
&CPTflags = SETBIT 9
}
}
Var 6211, Link IOCARD_SW, Input 25, name swCNDPLN
{
IF &swCNDAPP = 1
{
&CPTflags = SETBIT 8
&CPTflags = SETBIT 9
}
}




est-il réaliste de supprimer VAR 6208 de cet exemple et de modifier le script des VAR 6209,6210 et 6211 de façon suivante
( en laissant " en l'air" le contact qui va bien du commutateur rotatif )


Var 6209, Link IOCARD_SW, Input 24, name swCNDVOR
{
IF &swCNDVOR = 1
{
&CPTflags = SETBIT 8
&CPTflags = CLEARBIT 9
}

ELSE
{
&CPTflags = CLEARBIT 8
&CPTflags = CLEARBIT 9

}
}

Vu de ma fenêtre ça devrait marcher rirebleu mais SIOC est encore bien mystérieux pour moi!

serait-il utile ou nécessaire de conserver VAR 6208 en "NOT LINKED"
et de forcer à 0, au départ, les bits 8 et 9 de &CPTflags

A+
Alain

Re: Economiser un input

MessagePosté: Mer 29 Fév 2012 20:08
de algue14
Personne ?? gratgrat gratgrat

Bon j'avance doucement sur la question.
Je pense que je vais utiliser l'encodage binaire en utilisant le montage suivant, du coup ça libère 2 inputs

Image


Est-ce que le script suivant est correct pour cette modif ?


//------------------------------- ND MODE ------------------------------------

Var 6208, Link IOCARD_SW, Input 18, name swCND1
{
IF &swCND1 = 1
{
&CPTflags = SETBIT 8
}
ELSE
{
&CPTflags = CLEARBIT 8
}
}
Var 6209, Link IOCARD_SW, Input 24, name swCND2
{
IF &swCND2 = 1
{
&CPTflags = SETBIT 9
}
ELSE
{
&CPTflags = CLEARBIT 9
}
}


ça fume dans la tête ecroulerire ecroulerire

A+
Alain

Re: Economiser un input

MessagePosté: Mer 29 Fév 2012 23:32
de tabar57
Salut Alain,

Puisque personne y te répond et ben je me risque...
Cette façon de faire me parait correcte et puisque tu avoue commencer la prog SIOC je te propose juste d'indenter tes parties de programme et de me mettre ton name de variable juste après le num, tu verras c'est plus lisible à terme, du style

Var 6208, name swCND1, Link IOCARD_SW, Input 18
{
IF &swCND2 = 1
{
&CPTflags = SETBIT 8
}
ELSE
{
&CPTflags = CLEARBIT 8
}
}
Var 6209, name swCND2, Link IOCARD_SW, Input 24
{
IF &swCND2 = 1
{
&CPTflags = SETBIT 9
}
ELSE
{
&CPTflags = CLEARBIT 9
}
}

Pardonnes la remarque qui vient d'un vieux c... d'informaticien maniaque

Cordialement

Bernard

Re: Economiser un input

MessagePosté: Jeu 1 Mar 2012 11:32
de remont
Bonjour,

Oui la méthode est bonne.
Deux manières d'économiser les inputs : c'est l'encodage binaire avec les diodes soudées. C'est ce que j'ai fait de mon côté.
Autre moyen de gagner deux inputs sur un rotatifs :
- Position 1 pas de code
- Position 2 code pour ON = position 2 et
code pour OFF avec position 3 non active = position 1 (un petit delay de qq micro secondes) peut être utile.
- On peut faire pareil sur les dernières positions de l'encodeur. Donc On économise les deux inputs extrêmes.

Renaud.

Re: Economiser un input

MessagePosté: Jeu 1 Mar 2012 20:14
de algue14
Merci à vous 2 pour vos réponses
@ Bernard
tabar57 a écrit: je te propose juste d'indenter tes parties de programme et de me mettre ton name de variable juste après le num, tu verras c'est plus lisible à terme,


OK tu as raison et je garde ce conseil au chaud ;en fait c'est surtout sur le principe que j'étais inquiet;Ce que j'ai mis est un copier-coller du script de base fourni avec OGS et que j'ai essayé d'adapter a mon cas.

Maintenant que je suis rassuré grandsoleil je vais pouvoir finaliser mon circuit imprimé.

A+

Alain