Autor Tema: 16f873a y comunicacion serial  (Leído 2122 veces)

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

Desconectado kikecon

  • PIC10
  • *
  • Mensajes: 35
16f873a y comunicacion serial
« en: 06 de Junio de 2010, 01:33:55 »
hola amigos como estan? nuevamente por el foro para aclarar unas dudas esta vez sobre como trabajar con el serial en el pic 16f873a bueno he hecho este programita en sourceboost c y bueno corre muy bien pero al momento de simular no hace lo que quiero es mas no hace nada aqui les pongo el programa , el programa pa simular es el proteus gracias

#include <system.h>
#include "tst_comunicacion.h"

//------------------ Programa test RS232 -----------------------
// El PIC envia un mensaje se saludo el cual se puede visualizar
// a través del Hiperterminal de Windows
//---------------------------------------------------------------
char data[20];
void enviar_msg()
{
    char j=0;
    data[0]=0x48; // H
    data[1]=0x4f; // O
    data[2]=0x4c; // L
    data[3]=0x41; // A
    data[4]=0x0d; // CR - control de carro
    data[5]=0x0a; // LF - line feed
    //j=0;
    while(1)
    {
        while(1) // Espera a que se vaya el dato
        {
            if(pir1.4==1)
            nop();
            break; // Cuando TXIF=1 se fue
        }
        txreg=data[j]; // Envia el dato almacenado en data[j]
        j++;
        if(j==5) break; // Despues de enviar el ultimo parte de cero
        pir1.4=0;
    }
}

void main()
{
// Se programan los bit correspondientes, el de TX y RX
// corresponden la PORTC.B7 y PORTC.B6 respectivamente
// el primero como salida y el segundo como entrada.


trisc=0x80; // 10000000
spbrg=31; // 9600 8 N 1
txsta=00100000b;
rcsta=10010000b;
pir1= 0x30; //HABILITA LA BANDERA QUE INFORMA QUE REGISTRO DE TX ESTA VACIO!!!

while(1)
    {
    enviar_msg();
    }
}
Enrique Contreras R.

Desconectado cyberman123

  • PIC10
  • *
  • Mensajes: 7
Re: 16f873a y comunicacion serial
« Respuesta #1 en: 06 de Junio de 2010, 10:45:43 »
Asi por encima veo el error que no dejaria hacer nada...

estas utilizando 3 whiles y todos tiene condicion siempre 1... osea q nunca se va a salir

apenas entre al primer while(1).. el resto del codigo nunca se va a ejecutar

tienes q poner condiciones validas para que exista la posibilidad de salir del while

Desconectado kikecon

  • PIC10
  • *
  • Mensajes: 35
Re: 16f873a y comunicacion serial
« Respuesta #2 en: 06 de Junio de 2010, 10:59:44 »
cyberman los while tiene un break que los hace salir del ciclo, mi duda es si donde coloco el dato para que sea enviado al serial esta bien, me imagino que si eso es correcto entonce si coloco un led en el pin de transmisión debe de oscilar o me equivoco¿? gracias por el aporte
Enrique Contreras R.


 

anything