Autor Tema: Comunicación Usart  (Leído 5367 veces)

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

Desconectado nanosegundo

  • PIC10
  • *
  • Mensajes: 30
Comunicación Usart
« en: 13 de Marzo de 2006, 16:26:00 »
  Hola yo quiero comunicar a 2 pics via usart, de manera que uno de los pics esté siempre esperando a que el otro le pida información y cuando este se la envie, le responda con un dato. Mi pregunta es, al poner al pic en modo recepción ¿Éste no continua con el programa hasta que le envien los datos o si no hay datos supone una recepción 0 y sihue con el programa?

 Gracias

Desconectado Ojosdeluna

  • PIC10
  • *
  • Mensajes: 5
RE: Comunicación Usart
« Respuesta #1 en: 14 de Marzo de 2006, 04:23:00 »
Hola nanosegundo, mira primero especifica que tipo de Pic vas a estar usando pues cada uno tiene sus características con respecto a la comunicación por USART.

Si usas el afamado pic16f84a el codigo lo genera a "a paso" es decir como si fuese un procedimiento y por su puesto el pic no podra haccer otra tarea mientras este ocupado recibiendo el dato.

Si usas un pic16f876a o 16f877a por decir un ejemplo estos pic"s ya traen en su interior registros especializados en usart, de tal forma que declaras una interrupcion por recibir datos, la interrupción ocurre al finalizar la recepcion. Quiere decir que mientras recibe los 8 bit"s de datos tu puedes trabajar en otra area pero al recibir el bit de stop ahi te desvia el flujo del programa a la interrupción.

Desconectado rickytv0

  • PIC10
  • *
  • Mensajes: 1
Mismo problema
« Respuesta #2 en: 05 de Diciembre de 2007, 21:43:08 »
hola a todos yo quisiera saber si alguien me puede dar un ejemplo, yo estoy tratando de hacer lo mismo y no se como empezar, estoy usando un micro como master 16f873 y como slave 16f876. desde ya gracias

Desconectado chica_unexpo

  • PIC10
  • *
  • Mensajes: 1
Re: Comunicación Usart
« Respuesta #3 en: 17 de Marzo de 2008, 18:56:15 »
Hola tengo un problema cuando simulo en Proteus un programa en el cual uso el modulo Usart. Yo habilito la interrupcion por recepcion y como prueba al recibir mando un mensaje diciendo "el mensaje recibido fue: "el mensaje" ", la transmision se realiza perfecto, pero sin teclear ningun mensaje el actua como si estuviese recibiendo algo, y escribe repetidamente "el mensaje recibido fue: "el mensaje" " no se porque. Asi configuro los registros

            movlw         .25
            movwf         CtteBaud
            call            IniUSART         

            call            Convertir
            call            Mostrar
            
            call            EnableUSART
            call            Transmisionserial
            call            DisableUSART

            banksel         RCSTA
            movlw         b'10010000'
            movwf         RCSTA

            banksel         INTCON
            movlw         b'01000000'
            movwf         INTCON

            banksel         PIE1
            movlw         b'00100000'
            movwf         PIE1            
            banksel         0x00
            bsf            INTCON,7
.
.
.
INTERRUPCION:
            btfss         PIR1,ADIF
            goto         $+4
            call            Convertir
            call            Mostrar
            bcf            PIR1,ADIF
            btfsc         PIR1,RCIF
            call            Recepcion
   

            retfie
.
.
.
Recepcion:
            btfss         PIR1,RCIF
            goto         $+4
            movf         RCREG,w
            movwf         Dato
            call            EnableUSART
            call            Menrecived   
            call            DisableUSART

            return

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Comunicación Usart
« Respuesta #4 en: 18 de Marzo de 2008, 22:27:14 »
Umm!! Bueno esa parte de los registros se ve bien!!! haria falta el programa completo para revisarlo bien... Si te está mostrando ese mensaje infinitas veces, es porque estás pasando por esa instrucción mostrar todo el tiempo.... Es decir, estás entrando infinitas veces en la función enviar a través del modulo usart!!! Revisa bien tu programa, y verifica que luego de que envie por primera vez tu mensaje, pues de allí se vaya a otra función que se yo, manda a dormir al micro, chequea un puerto o algún otra cosa!!!

Pero lo que estoy viendo es eso, que en vez de irte a otro lado luego de mandar el mensaje, estás devolviendo el programa a esa función de enviar y allí se queda hasta el infinito!!

Atte: Enigma... La llanerita de Guayana :D
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!