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