Vai al contenuto
PLC Forum


Trasmissione Sul Bas


giagro

Messaggi consigliati

ho un problema. Uso il pic 16f648a.

Devo inviare 8 byte sul bus ad un bit rate di 1200.

Ho settato la velocità di trasferimento ma non riesco ad inviare nulla in quanto non esco mai dal ciclo in rosso. cioè il TSR resta sempre pieno e non si svuota mai non permettendo la trasmissione dei rstanti 7 byte (e nemmeno del primo veramente.)

Cosa puo essere?? grazie

transmit:

bank1

movlw txbuf

movwf txpt

movlw 9 ;carct 8 byte to send

movwf txct

; incf txct,F

waitendtx:

bank1 ;IF buffer tx empty

decfsz txct,F

goto noftx

;end of tx

bcf TXSTA,TXEN ; disable tx goto ftxi

noftx:

movf txpt,W

incf txpt,F

bcf STATUS,IRP

movwf FSR ; indirect register

movf INDF,W

bank0

movwf TXREG

bank1

bsf TXSTA,TXEN ; enable tx

waitbytetx:

btfss TXSTA,1

goto waitbytetx

goto waitendtx

ftxi: ; end buffer trasmission

; clrf flagdel ;

return

P.S. Scusate l'errore nel tittolo...ma non posso piu modificarlo: BAS--->BUS

Modificato: da giagro
Link al commento
Condividi su altri siti


guardando qua e la forse ho capito.

Non ho settato il bit di tasmissione seriale:

BSF RCSTA,SPEN ;ABILITA SERIALE

Ora non ho qui l'emulatore. Qualcuno potrebbe dirmi se puo esser questo l'errore?

Domanda: ma prima di inviare sulla seriale i pin di rx (RB1) e tx (RB2) come devono esser settati? perchè magari sbaglio anche questo...grazie!! <_<

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...