rs232

S

SamanthaL

Guest
Ciao a tutti,

Sto lavorando con RS232 su un PIC16F874A.Sono stato il debug di questo codice per un certo periodo di tempo e non riesce a trovare il motivo per cui non è la trasmissione.Ho istituito LED per mostrare quando si arriva ad alcune parti del codice, ma nulla è stato trasmesso anche se si sta facendo attraverso tutto il codice.Am I missing something?

Codice è allegato di seguito.

La ringrazio in anticipo per il vostro tempo e pazienza.

Sto utilizzando Hyperterminal con velocità di trasmissione 9600, nessun controllo hardware, e 1 bit di stop.

 
Ive ha avuto una rapida occhiata al codice e notato uno o due cose.Questi possono / potrebbero non risolvere il problema.
Se si compila il codice, viene visualizzato questo messaggio il compilatore,

Messaggio [305] C: \ TEMP \ SERIAL5 \ SERIAL_5.ASM 81: Utilizzo di destinazione predefinita di 1 (file).

si riferisce a questa linea quando si ripristinano i registri su interrompere l'uscita.

movf savepclath

questo sposta il contenuto di savepclath ritornare in savepclath, dovrebbe essere

movf savepclath, w

mpasm supporta le istruzioni 'movfw' che rende le cose più chiare.vale a dire

movfw savepclath

Nel trasmettere la vostra routine, si consenta l'interrupt, ma non si usa nella routine di interrupt.Le bandiere sono fissati interrompere o meno di consentire l'interrupt è impostato, non solo per il vettore di interrupt, questo vale per tutti gli interrupt, è possibile utilizzare il flag di interrupt ouside.
Si potrebbe anche utilizzare il TRMT po 'di rilevare quando la TXREG è vuoto.

Codice:; Trasmettono

trasmettere

BSF PORTD, 1

movlw 0x031; dimensione massima è un byte?

movf tx_data, w, questo sovrascrive il 0x31

transmitw

BSF PORTD, 2

btfss PIR1, TXIF

goto transmitwgietx

bcf INTCON, GIE

btfsc INTCON, GIE

goto gietx

movwf TXREG

BSF INTCON, GIE

BSF PORTD, 7

ritorno

 

Welcome to EDABoard.com

Sponsor

Back
Top