Keresés

Aktív témák

  • kisfurko

    senior tag

    válasz wfjo #13 üzenetére

    1. Beállítod a baud rate-et. Ez 1843200/16/x, ahol x az osztó, amit beállítasz. Tehát bázis+3-ra írsz egyet úgy, hogy a 7. bit 1-es. Ezután az alsó és felső byte-ját az osztónak beírod a bázis+0 és +1-be.
    2. Beállítod az adatformátumot a bázis+3-on és egyúttal a 7. bit 0-ra. A 6. bit is 0, mert nem kell BREAK.
    Ezután már tudsz kommunikálni a bázis+0-n, oda kell írni, illetve onnan kell olvasni. Csak akkor írhatsz oda, ha az adó adatregisztere üres, tehát ha a bázis+5 5. bitje 1. Olvasni akkor kell, ha a vevő adatregisztere nem üres, tehát bázis+5 0. bitje 1.

    Ha kell megszakítás is, akkor szólj!

    Tehát:

    mov dx,bázis
    mov bx,dx
    add dx,3
    mov al,80h
    out dx,al
    mov ax,osztó
    mov dx,bx
    out dx,ax
    add dx,3
    mov al,00000011b ;nincs paritás, 1 stop, 8 adat
    out dx,al

    Kiírás:

    mov dx,bázis
    add dx,5
    waittransmit:
    in al,dx
    test al,20h
    jz waittransmit
    mov al,amit ki akarsz írni
    sub dx,5
    out dx,al

    Beolvasás:

    mov dx,bázis
    add dx,5
    waitreceive:
    in al,dx
    test al,1
    jz waitreceive
    sub dx,5
    in al,dx

    Ezek persze elég gagyik, megszakítással illik pufferbe/ből dolgozni.
    Remélem nem hibáztam :))

Aktív témák