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

(1/3) > >>

Petr Liskar:
Situace: Programuji Tecomat Foxtrot. Mám POU volanou v úloze, kterou chci spouštět, pokud je první bit systémové proměnné System_S.S25 roven jedné. Tento bit chci nastavit na základě nějaké podmínky v jiné/jiných POU a shodit při vykonání daného POU. Existuje nějaký jednoduchý zápis či přiřazení, kterým bych mohl daný konkrétní bit ovlivnit?

SMILEK:
Přece ":="     ;)

Postránecký Petr:
Citace: Petr Liskar  29.05.2012, 01:51

Situace: Programuji Tecomat Foxtrot. Mám POU volanou v úloze, kterou chci spouštět, pokud je první bit systémové proměnné System_S.S25 roven jedné. Tento bit chci nastavit na základě nějaké podmínky v jiné/jiných POU a shodit při vykonání daného POU. Existuje nějaký jednoduchý zápis či přiřazení, kterým bych mohl daný konkrétní bit ovlivnit?


Udělal bych to takto:
- Hodnotu bytu bych uložil do proměnné
- Dosadil do vzorce x= Proměnou AND 1 (prvni bit vysledkem je 1 pokud je "nahozen" a 0 pokud ne)
- porovnaní a nějaká akce

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

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

Zápis na překlopení prvního bitu by vypadal asi takto:

System_S.S25 = System_S.S25 xor 1

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

Petr Liskar:
Citace: Pavel Smílek  29.05.2012, 10:47

Přece ":="     ;)

Hmm, a zkusel jsi to?

Navigace

[0] Index zpráv

[#] Další strana