Jakým přiřazovacím příkazem mohu nastavit konkrétní bit v proměnné typu byte?

<< < (2/3) > >>

Petr Liskar:
Citace: Jirka Š. Svejkovský  29.05.2012, 12:14

Neznám prostředí Mosaic, ale pokud chcete přehodit libovolný bit, použijte operaci xor:

1000b xor 10b = 1010b (překlopí druhý bit)

Spíš OR než XOR, potřebuji bit zaručeně nahodit (shodit na nulu se dá pro změnu ANDem).
Hledal jsem jednodušší způsob, než se matlat s ORem a s ANDem. Konkurence například umožňuje nadefinování aliasu nad zvolený bit a dál se v operacích pracuje s názvem aliasu a prgramátor se o nic nestará. Popřípadě syntaxe přiřazení umožňuje jít až na zvolený bit dané proměnné přímo...

Takže mě čeká psaní vlastní knihovny, aby bylo možno Teco rozumně použít...  >:(

Citace: Jirka Š. Svejkovský  29.05.2012, 12:14

Pokud je systémová proměnná System_S.S25 readonly, pracoval bych s její kopií.

Ne, je RW a tato konkrétně řídí spouštení určité skupiny úloh.

SMILEK:
No dobrá,  tedy vážně:

VAR_GLOBAL
   mujNastavovany Bit  AT %S25.1  : BOOL;   
END_VAR


a v POU pak volat:
IF moje_podminka THEN mujNastavovany Bit := hodnota; END_IF
 ;)

Milan Bydžovský:
Alias na první bit lze zapsat jako:

VAR_GLOBAL
  alias_na_prvy_ bit_s25 AT System_S.S25.0 : BOOL;
END_VAR

Kromě definice proměnné lze použít zápis s bitovým indexem i přímo v kódu:

zápis může vypadat např. takto:

System_S.S25.0 := hodnota;

SMILEK:
Citace: Milan Bydžovský  29.05.2012, 19:24

System_S.S25.0 := hodnota;


A myslíte, že to bude v praxi fungovat? Měl jsem pocit, že S25.0 si přepisuje samotný systém (plánování P9) a uživatelsky ovlivnitelné jsou až bity S25.1-7.  Tak jsem v příkladu přepsal nultý bit na první (S25.1).   (dance)

Jiří Schwarz:
Koukám, že mi asi trochu ujel vlak...
Já bych to dokázal maximálně pro nějaký PIC pomocí instrukce  BSF f,b

Navigace

[0] Index zpráv

[#] Další strana

[*] Předchozí strana