Jakým přiřazovacím příkazem mohu nastavit konkrétní bit v proměnné typu byte?
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