Komunikace s terminalem

Martin Šaněk sanek.martin@volny.cz
Sobota Srpen 14 11:32:42 CEST 2004


Dobry den,
Mam PIC16F876 a snazim se posilat data na terminal ve WIN. Snazil jsem
se to udelat podle KTE 7/2004 a nejak mi to nechce chodit. Lepe receno
znaky to vysila, ale asi to netestuje spravne priznak TXIF, protoze
kdyz tam nedam po kazdem znaku mezeru (v programu 100ms) tak to vysle
registr STA, reg DES uz ne  a JEDN zase ano. Neprovede to navrat na
zacatek radku, ale odradkovani uz ano. Pripada mi, jako by program
netestoval priznak, znaky porad rval do TXREG a nektere proste
vypadly. Urcite jsem neco prehlednul (jako kdysi u EEPROMky), ale i
kdyz ctu manual porad dokola, tak me nenapada co.Program je nasledujici:


  ;nastaveni procesoru
        banksel SPBRG
        movlw   .12             ;19200/4MHz
        movwf   SPBRG
        banksel TXSTA
        movlw   b'00100100'
        movwf   TXSTA
        banksel RCSTA
        movlw   b'10010000'
        movwf   RCSTA
        banksel TRISB
        movlw   b'11111110'     ;PORTB,0 vystup na LED
        movwf   TRISB
        banksel PORTB
        clrf    PORTB
        banksel 0

loop

        movlw   .1
        movwf   STA
        
        movlw   .2
        movwf   DES
        
        movlw   .3
        movwf   JEDN

        movlw   .48             ;ASCII začíná od 48 dekadicky                   *
        addwf   STA,f           ;STA+48                                         *
        addwf   DES,f           ;DES+48                                         *
        addwf   JEDN,f          ;JEDN+48

        btfss   PIR1,TXIF      ;kontrola volneho registru
        goto    $-1
        movf    STA,w           ;precti hodnotu stovek                          *
        movwf   TXREG
        
;       call    w100ms
        
        btfss   PIR1,TXIF       ;kontrola volneho registru
        goto    $-1
        movf    DES,w           ;precti hodnotu desitek                         *
        movwf   TXREG
        
;       call    w100ms

        btfss   PIR1,TXIF
        goto    $-1
        movf    JEDN,w          ;precti hodnotu jednotek                        *
        movwf   TXREG

        btfss   PIR1,TXIF
        goto    $-1


        movlw   0x0D            ;vrat se na zacatek radku
        movwf   TXREG
        btfss   PIR1,TXIF
        goto    $-1
        movlw   0x0A            ;odradkuj
        movwf   TXREG
        btfss   PIR1,TXIF
        goto    $-1
        
        call    w1s
        call    w1s
        call    w1s

        goto    loop        


 Diky za nakopnuti spravnym smerem

 Martin Sanek




Další informace o konferenci Hw-list