SET/RESET de n°bit indexé

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

SET/RESET de n°bit indexé

Message par itasoft »

Slts,
J’ai pas trouvé de fonction pour faire le SET/RESET du n° Bit indexé dans un mot de 16 bits
Alors je me suis paluché les lignes de prog, si ça peut re-servir (même principe pour un 32 bits)

(*--SET/RESET d’un bit (n° 0à15 dans NUM_BIT) dans le mot %MW0 ---*)

(*élabore le masque*)
MSK:=1;MSK:=SHL(MSK,NUM_BIT);
(*SET du Bit*)
%MW0:=%MW0 OR MSK;
(*RESET du Bit*)
%MW0:=%MW0 XOR MSK;
Automaticien privé (de tout)
itasoft@free.fr
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1580
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: SET/RESET de n°bit indexé

Message par MiGaNuTs »

Pas con ton astuce. Attention cependant a etre sur que le bit en question est bien a 1 avant de le reseter, sinon c'est la surprise assurée.
%MW0:=%MW0 AND (NOT MSK); ca me parait plus "safe"
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: SET/RESET de n°bit indexé

Message par itasoft »

MiGaNuTs a écrit : 15 août 2021, 14:10 Pas con ton astuce. Attention cependant a etre sur que le bit en question est bien a 1 avant de le reseter, sinon c'est la surprise assurée.
%MW0:=%MW0 AND (NOT MSK); ca me parait plus "safe"
---------------
c'est juste, bien vu, bravo
-------
Mise à jour
(*élabore le masque*)
MSK:=SHL(1,NUM_BIT);
(*SET du Bit*)
%MW0:=%MW0 OR MSK;
(*RESET du Bit*)
%MW0:=%MW0 AND (NOT MSK);

à force de simplifier il va plus rien rester, lol
Automaticien privé (de tout)
itasoft@free.fr
Répondre