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;
SET/RESET de n°bit indexé
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
SET/RESET de n°bit indexé
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
MiGaNuTs
- Mi homme - Mi automate

- Messages : 1580
- Enregistré le : 12 nov. 2015, 21:02
- Localisation : 45 - Loiret
- Contact :
Re: SET/RESET de n°bit indexé
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"
%MW0:=%MW0 AND (NOT MSK); ca me parait plus "safe"
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: SET/RESET de n°bit indexé
---------------
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
itasoft@free.fr