Keresés

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

  • Szirty

    őstag

    válasz vopi86 #2683 üzenetére

    Hali vopi86!

    000000: A 0.00 bemenet 1 állapota elindítja a TIM1 timert, ami 2 másodpercig telik (#20). Tudom te 5-öt akarsz, majd annyit írsz be.

    000001: A 253.13 egy belső flag, ami állandóan bekapcsolt állapotú (always on). Azért van rá szükség, mert a CMP utasítás nem rakható le úgy, hogy nincs előtte feltétel, ezzel a flaggel lehet elhelyezni hogy mindig elvégezze az összehasonlítás.
    A CMP(20) az összehasonlító utasitás, ami operandus 1-et 8ami jelen esetben a TIM1 tartalma) összehasonlítja operandus 2-vel (ami jelen esetben egy BSD konstans, konkrétan a #1 érték). Az összehasonlítás eredménye beállítja a GR, EQ és LE, azaz a nagyobb mint, egyenlő és kisebb mint jelzőbiteket.

    000002: Ha a 255.06-os bit =1 (történetesen ez az egyenlő jelzőbit, amit az előbbi CMP(20) állít be) akkor bekapcsolja a 10.00 kimenetet, egyébként nem kapcsolja be.

    A következő két sor ugyanez, csak nem #1-el, hanem #2-vel hasonlít és nem a 10.00, hanem a 10.01 kimenet kapcsol amikor a timerben #2-van.

    Egyszer már ajánlottam neked ezt a leírást.
    A 207. oldalon ékes magyar nyelven magyarázza példával a CMP(20) COMPARE utasítás működését.

    Ui.: Mivel a standard timer 100ms időalappal működik, egy tizedmásodpercig fogja csak bekapcsolni neked a kimeneteket ez a program!

    [ Szerkesztve ]

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