Hirdetés

  • AMD Radeon undervolt/overclock

    lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...

  • Mégis megjelenik Switch-re a Deliver Us the Moon

    gp Közel négy évvel a hibrid konzolora szánt változat elkaszálása után a készítők úgy döntöttek, hogy mégis megjelenik a Switch verzió.

Új hozzászólás Aktív témák

  • Szirty

    őstag

    válasz vopi86 #2701 üzenetére

    Helló vopi86!

    Nos feltéve hogy a BCD kapcsoló a 0.00-0.03 bemenetekre van kötve úgy, hogy 0.00=bit0, 0.01=bit1, 0.02=bit2 és 0.03=bit3, akkor a program a következő:

    Az első MOV nullát ír a DM0 memória címre, előkészítve a terepet a TIM SV elhelyezésére.
    A MOVD digit mozgató utasítás. Az első operandusa a forrás, (honnan vegye a digitet). Ez itt 0 vagyis a 0. csatorna, ami egy 16 bites (4 digitet tartalmazó) WORD és a 0.00-0.15 bemenetek bitjeit tartalmazza.

    A MOVD második operandusa a vezérlő szó, ez mondja meg a MOVD-nek honnan hova hány digitet mozgasson. Ez itt #0100 konstans érték ami azt jelenti, hogy a 0 csatorna 0. digitjétől kezdve 1 digitet átmásol a célterület 1. digitjébe.
    A 3 operandus a D0, ami a DM adatmemória terület első címe. Ez is egy Word (A DM terület szabadon használható a programban) ide fogja mozgatni a digitet.

    Ha tehát a 0.00-0.03 bemenetekre kötött kapcsolón pl ötöt állítasz be, aminek bináris mintája 101, akkor azt a MOVD a DM0 bit4-bit7 bitjeibe (2. digit) másolja aminek eredményeképpen ott előáll a 1010000 bináris érték, ami megfelel a BCD 50-nek, ami 5 másodperc időzítést fog jelenteni.

    Végül a DM0 a TIM1 SV operandusa, a TIM1 tehát addig telik amekkora idő van a DM0 memóriacímen.

Új hozzászólás Aktív témák