Új hozzászólás Aktív témák
-
Szirty
őstag
Helló drgab!
"Nem fordulhat elő, hogy a set-elő ág később értékelődik ki, mint ahogy a shift regiszter beolvassa a bemenetén a setelt bitet tartalmazó byte-ot?"
Nem.
Azért nem, mert a program balról jobbra / fentről lefele kerül végrehajtásra, ami sosem változik meg, mindig így csinálja.
Ha ezt a sort beírod létrában és megnézed a kódot STL-ben egyértelmű lesz.Köszönöm az elismerő szavakat!
-
Szirty
őstag
Helló drgab!
Igen, SHL_W word-öt (16 bitet) shiftel. De ez nem baj, mert az a 3 ami neked kell benne van ebben a 16 ban

Persze megvan az a hátránya, hogy ha csak az alsó 3 bit kell neked, akkor a többi kvázi fölösleges (elvész).
De ha nagyon fontos hogy őgí működjön mint az FC92, az is megoldható.
Három változatot csináltam. Az első egy teljes byte-ot használ fel a léptetésre:
Igaz, hogy az SHL_W 16 bitet shiftel, de csak 8-at (byte) töltöttem bele.
Igaz ezt alapból el sem fogadja a fordító, sajnos ki kell kapcsolni hozzá a típus ellenőrzést (Type check of addresses).
Ez a módszer az egész MB222 merker byte-ot használja, tehát az MB222.3-MB222.7-ig terjedő 5 bitet nem használhatjuk fel a programban, ám ezek a bitek tartalmazzák a 4. az 5. a 6. stb lépéssel azelőtti állapotot (ha netán szükség lenne rá).Ha azt akarod, hogy csak az alsó 3 bitet léptesse az MB222-ben, akkor maszkolni kell és átmeneti változókra is szükség lesz. Létrában ez:
STL-ben egyszerűbb megcsinálni, nem kell hozzá csak egy átmeneti változó. Bár azt is ki lehetne talán küszöbölni egy kis trükkel:
-
Szirty
őstag
Helló drgab!
Egy screenshot sokat mondott volna arról mit hogyan csináltál.
Kipróbáltam, nálam működik, így csináltam:
Amikor M200.0 +-ból 0-be vált, akkor lép egyet, majd beírja M200.1 pillanatnyi állapotát a shift regiszter elejére (M222.0-ba). 3 bitet tol el balra, az eredmény M222.2-es biten jön ki.
"reset:???? ez miért kell? és mi lesz"
Ha a RESET TRUE amikor a blokk lefut, akkor törli a shift regisztert (avagy annak összes bitjébe nullát ír).
"Whenever the RESET input is set to 1, the locations in the table are set to 0 rather than being shifted."
Hogy kell-e, azt döntsd el te.
Van, ez egy lehetőség, nem kell kihasználni ha nincs rá szükség.Bár ennek a blokknak a használata kényelmes (ez a blokk inkább akkor kap fontos szerepet ha több mint 32 bitet kell léptetni), de megjegyzem, hogy vannak bit léptető (shift és rotate) utasítások is:
Létrában és FBD-ben: SHR_I, SHR_DI, SHR_W, SHR_DW, SHL_I, SHL_DI, SHL_W, SHL_DW, ROL_DV, ROR_DW. Azokkal is megoldható a feladat.
Új hozzászólás Aktív témák
- Formula-1
- Linux kezdőknek
- Windows 10
- Ford topik
- Elektromos autók - motorok
- Gyúrósok ide!
- Xiaomi Mi Box androidos médialejátszó 4K és HDR támogatással
- Andras-G: Az internet veszélyei [2. rész] - Facebook Marketpalce
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- eMAG vélemények - tapasztalatok
- További aktív témák...
- iPhone SE 2020 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4594
- BESZÁMÍTÁS! ASRock A520M R5 3600 16GB DDR4 512GB SSD RX 6600 8GB Rampage SHIVA Cooler Master 600W
- LG 55QNED823RE / QNED / 55" - 140 cm / 4K UHD / 120Hz & 4ms / HDR Dolby Vision / FreeSync + HDMI 2.1
- REFURBISHED - DELL Thunderbolt Dock WD19TB (210-ARJD), WD19TBS (210-AZBV)
- 360 áthajthatós! Dell Latitude 5330 2 in 1 i7-1265U 10magos! 16GB 1000GB 13.3" FHD 1 év garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

