PROMOS fórum

FRED - grafické vývojové prostředí => FRED - platforma PL2 (CCPU) => Téma založeno: vholcman 06.08.2015, 10:14:39



Název: Jak realizovat podmínku if
Přispěvatel: vholcman 06.08.2015, 10:14:39
Dobrý den
Potřeboval bych udělat v podstatě podmínku if.
Mám dva binární stavy. Pokud jsou oba v 0 tak na výstupu je 0, pokud je první v jedničce tak na výstupu 1, a pokud jsou oba v 1 tak na výstupu cykluje 0 a 1.
Podařilo se mě to udělat pomocí AMUX a převodu BIN na INT, ale říkal jsem si že musí existovat nějaké elegantní řešení.
Děkuji
Holcman


Název: Re: Jak realizovat podmínku if
Přispěvatel: libor 07.08.2015, 08:09:45
Dobrý den,

jedním z velkých nedostatků platformy PL2 (CCPU-03, CCPU-02, CCPU-21) je neexistence podmínky if a její velice špatné nahrazování tím, že se "vrší" moduly. Pokud jste to realizoval pomocí modulu Int2Bin a Amux, tak to je nejspíše nejvíce elegantní řešení, které můžete dostat.

I z tohoto důvodu jsou nové centrály CCPU-34 (http://www.elsaco.cz/index.php?file=./produkty/hdl/371_ccpu34.php) postavené a více podobné jednotkám XCOM (http://www.elsaco.cz/index.php?file=./produkty/mikropc/253_xcom21.php) - modul si můžete vytvořit sám a může obsahovat (nejen) podmínek, kolik budete chtít.

Kdybychom vytvořili modul se 2 vstupy (in0, a in1) a jedním výstupem out, tak by kód tohoto modulu vypadal očekávatelně:

Kód:
if (!(*in0) && !(*in1)) out = 0;
else if ((*in0) && !(*in1)) out = 1;
else if ((*in0) && (*in1)) out = 1 - out;

Vytvoření modulu je v takovém případě otázkou několika málo minut. Bohužet toto není na starých jednotkách možné, ale pouze na nových jednotkách typu XCOM nebo CCPU-34.