Autor Tema: Recepcion de 1 byte por USART 16F628A  (Leído 3297 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fzurita

  • PIC10
  • *
  • Mensajes: 33
Recepcion de 1 byte por USART 16F628A
« en: 18 de Marzo de 2008, 10:23:49 »
Hola! Necesito recibir desde una EEPROM externa 1 byte por la USART de un 16F628A, y cargarlo en el registro W para su posterior procesamiento. Alguien tiene un codigo lo mas simplificado posible para esta tarea? y si es con algun comentario, mejor puesto que estoy en mi primer proyecto con PICs :)

saludos  8)




Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Recepcion de 1 byte por USART 16F628A
« Respuesta #1 en: 18 de Marzo de 2008, 11:06:48 »
Hola! Necesito recibir desde una EEPROM externa 1 byte por la USART de un 16F628A, y cargarlo en el registro W para su posterior procesamiento. Alguien tiene un codigo lo mas simplificado posible para esta tarea? y si es con algun comentario, mejor puesto que estoy en mi primer proyecto con PICs :)


Has configurado ya la usart?

Si es así, el código podría quedar algo así como


_ESPERABYTE:
      btfss  PIR1,RCIF
      goto   _ESPERABYTE
      movf    RCREG,w
      movwf    MIDATO


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado fzurita

  • PIC10
  • *
  • Mensajes: 33
Re: Recepcion de 1 byte por USART 16F628A
« Respuesta #2 en: 18 de Marzo de 2008, 11:40:34 »
No, aun me falta eso... pero la recepcion en si.......es asi de simple???? jajaja es que en otros post he visto unos codigos inteminables, aun no me lo creo.
 :D

Encontre esta configuracion, por favor corrigeme si esta ok para lo que necesito, o si necesito agregarle algo mas (las habilitaciones de interrupcion son necesarias?)

clrf LATB
clrf TRISB
movlw 19h    ; 9600 baudios
movwf SPBRG
bsf TXSTA, TXEN
bsf TXSTA, BRGH

bsf RCSTA, SPEN
bsf RCSTA, CREN

bcf PIR1, RCIF
bsf PIE1, RCIE
bsf INTCON, PEIE
bsf INTCON, GIE



saludos  8)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Recepcion de 1 byte por USART 16F628A
« Respuesta #3 en: 18 de Marzo de 2008, 13:19:58 »
No, aun me falta eso... pero la recepcion en si.......es asi de simple???? jajaja es que en otros post he visto unos codigos inteminables, aun no me lo creo.
La recepción de un byte es así de simple, pero depende qué hagas luego con el lo que puede que haga a tu código interminable o no. :)


Encontre esta configuracion, por favor corrigeme si esta ok para lo que necesito, o si necesito agregarle algo mas (las habilitaciones de interrupcion son necesarias?)
No, no son necesarias para nada, puedes configurar tu módulo para enviar o recibir sin tocar nada.

Yo veo correcto el código de configuración, lo que sí eso de "LATB" es de los 18F no de un 16f628A, elimina esa línea.

El valor del SPBRG depende del clock que uses así que si te fijas en el datasheet tienes un listado de algunos valores pre-calculados sobre todo para ciertos clocks que son muy comunes.


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)