Asamblėja kodas perduoti duomenis PIC atmintis

C

ceibawx

Guest
Kas gali man padėti ją patikrinti?
Aš saugomi duomenys TIFF, bet išėjimo nėra teisinga.TransData:
MOVLW 0xBF
MOVWF MR; to RAM
MOVLW 0x08
MOVWF ChannelCounter; ChannelCounter = 4 * 2

GoOnTransData:
BSF STATUS, 5
MOVF INDF, W
bcf STATUS, 5
MOVWF TXREG; Perkelti duomenis perduoda registras
BSF STATUS, 5
INCF MR, 1; INDF adresas numeris juda Kitas
DECFSZ ChannelCounter, 1; ChannelCounter-1
Goto GoOnTransData; cc! = 0.
Goto perdirbti; CC = 0.tx apdaila, pradėti naują RX.

 
Manau, kad jūsų problema yra tai, kad esate perrašymui TXREG.Turite testas TXIF vėliava pamatyti kai TXREG yra tuščias ant tada įkelti naują baitas.
See below for įmanoma nustatyti.Manau UART nustatymas buvo atliktas teisingai, tai yra TXEN truputį buvo nustatytas.Tai bus nustatyti TXIF.Įsitikinkite, kad naudojate BSF nustatyti TXEN, o ne raštu registre.Galite pridėti, kad instrukcija tik prieš GoOnTransData, jei tai nebuvo padaryta anksčiau.

By the way, nes jūs naudojate MR, nereikia nustatyti ir aiškius RP0 bit; MR gali kreiptis į teisingus duomenis per bankus 0 ir 1 su TPG = 0, nepriklausomai nuo RP0, 1 narė .

KodasTransData:

MOVLW 0xBF

MOVWF MR; to RAM

MOVLW 0x08

MOVWF ChannelCounter; ChannelCounter = 4 * 2BSF STATUSAS, RP0; 1 bankas

BSF TXSTA, TXEN; kad xmit

bcf STATUS, Rp0, banko 0 naujoGoOnTransData:

btfss PIR1, TXIF; patikrinti, ar mes galime atsiųsti naują baitas

Goto GoOnTransDataMOVF INDF, W; gauti baitas

MOVWF TXREG; Perkelti duomenis perduoda registras

INCF MR, 1; INDF adresas numeris juda Kitas

DECFSZ ChannelCounter, 1; ChannelCounter-1

Goto GoOnTransData; cc! = 0.

Goto perdirbti; CC = 0.tx apdaila, pradėti naują RX.
 
Ačiū už atsakymą.
Mano klausimas yra tas, kad ką tai reiškia?

kai TXIF = 1, buferis yra tuščias, bus ---------------------
MOVF INDF, W; gauti baitas
MOVWF TXREG; Perkelti duomenis perduoda registras
kai TXIF = 0, buferis pilnas, ji ------------------------
GoOnTransData:
btfss PIR1, TXIF; patikrinti, ar mes galime atsiųsti naują baitas
Goto GoOnTransData.

Ar galite paaiškinti išsamiau apie perduoti buferis?jei jis vis dar pilna, turime laukti, kol jis tuščias?

 
Taip, tai reiškia, perduoti buferis yra tuščia, ir Jūs galite rašyti naujus baitas į jį.Jei ji prieš tai tuščias, tai jūsų parašyti bus ignoruojamas, ir jūs neteksite simbolių.

Setting TXEN bus nustatyti TXIF, alowing kodas skaičiuoti už pirmąjį požymį siunčiate.Po to, jūs turite palaukti Ankstesnis simbolių perdavimas baigtas.Kaip tik jūs parašykite TXREG, TXIF bus išvalytas, todėl, jei tai patikrinti bitų Jūs negalite rašyti naujų baitas į TXREG kol jis tuščias.

Norėdami gauti daugiau informacijos, perskaitykite areštas

 
Thanks a lot.
Ir aš išbandyti, ir jūsų kodas yra naudinga, ir aš gavau tikėtasi duomenis.

Esi galingas.
Laba diena.Xing

 

Welcome to EDABoard.com

Sponsor

Back
Top