giagro Inserito: 19 ottobre 2005 Segnala Inserito: 19 ottobre 2005 (modificato) 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?? grazietransmit: bank1 movlw txbuf movwf txpt movlw 9 ;carct 8 byte to send movwf txct ; incf txct,Fwaitendtx: bank1 ;IF buffer tx empty decfsz txct,F goto noftx;end of tx bcf TXSTA,TXEN ; disable tx goto ftxinoftx: movf txpt,W incf txpt,F bcf STATUS,IRP movwf FSR ; indirect register movf INDF,W bank0 movwf TXREG bank1 bsf TXSTA,TXEN ; enable txwaitbytetx: btfss TXSTA,1 goto waitbytetx goto waitendtxftxi: ; end buffer trasmission; clrf flagdel ; returnP.S. Scusate l'errore nel tittolo...ma non posso piu modificarlo: BAS--->BUS Modificato: 19 ottobre 2005 da giagro
giagro Inserita: 19 ottobre 2005 Autore Segnala Inserita: 19 ottobre 2005 guardando qua e la forse ho capito.Non ho settato il bit di tasmissione seriale:BSF RCSTA,SPEN ;ABILITA SERIALEOra 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!!
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora