Autor Tema: comunicacion RS 485 entre 2 pic  (Leído 8230 veces)

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

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: comunicacion RS 485 entre 2 pic
« Respuesta #15 en: 30 de Septiembre de 2009, 00:23:56 »
Hola

No tienes que configurar 2 veces el puerto.

Es como si conectaras directamente los 2 pics con sus temrinales TX-RX.

La interrupcion #int_RDA , pues si la tienes que tener habilitada.

Asi El master Envia , el esclavo recibe y entra interrupcion , procesas el dato o lo que tengas que hacer y respondes , el master recibe el dato del slave , entra en interrupcion y procesas.

Para que no estes enviando coonstantemente el mismo dato del puerto , puedes crear una variable , en la cual guardes el ultimo valor del puerto y dato enviado , asi que mientras no sea diferente no envia nada y evitas entrar constantemente en Interrpcion.


Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: comunicacion RS 485 entre 2 pic
« Respuesta #16 en: 30 de Septiembre de 2009, 00:27:30 »
Hola.

Creo que la mejor solución es usar una función de escaneo para el teclado sin interrupción. Revisa en la carpeta drivers del CCS el archivo KBD.C.

Saludos
El papel lo aguanta todo

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: comunicacion RS 485 entre 2 pic
« Respuesta #17 en: 30 de Septiembre de 2009, 02:22:15 »
hola mlo bueno dejame desirte que en eso ando estoy probando la kbd2.c y me anda de lo mas bien ahora me queda probarla solo con la comunicacion para ver que tal anda.
saludos i de antemano gracias a todos

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: comunicacion RS 485 entre 2 pic
« Respuesta #18 en: 30 de Septiembre de 2009, 03:49:54 »
hola.... bueno e probado la comunicacion del RS-485 quitandole la interrupcion del teclado osea INT_RB pero susede ahora algo raro. en este caso el esclavo refleja lo del puerto B del master solo si presiono la tecla A del teclado del esclavo o la B, solo estas dos por que las tengo en un for( ; ; ){ }  y con estas dos teclas entro a 2 funciones diferentes. pero al presionar estas tecla no hace lo que deveria hacer (encender led). pero a parte de eso no me anda mal la comunicacion por lo menos no se pierde la comunicacion y transmite. ahora que se devera este problema ?????????????????????????

esto es la parte de las funciones del esclavo, por que el master no lo e tocado

Código: [Seleccionar]
int16 lectura;
#int_RDA    //interrupcion para la resepcion del master
void RDA_isr()
{
 lectura=GETC();  //guarda el valor enviado por el RS-485
}

///PROGRAMA
void main(void)
{   
   enable_interrupts(INT_RDA);     //interrupcion INT_RDA activada. comunicacion RS-485
   enable_interrupts(GLOBAL);      //todas las interrupciones activadas


   for(;;){   //bucle...
/** Pin RC5 que habilita la transmisión por el canal RS485
* \li LOW Habilita recepción RS485
* \li HIGH Habilita transmisión RS485.
*/
      output_low(PIN_C5);
      output_d(lectura); //avilito puerto D como resepcion de comunicacion con master       
     do{               //espera hasta...
         c=kbd_getc();   
         }while(c==0);   //...pulsar una tecla
     
      if(a==50){ nuevoPassword=password;}
         else{password=123456;}

       
      if(c=='B')         //ve a introducir nueva clave
         nueva_clave();
     
      if(c=='A')         //ve a comprobar clave
         comprueba_clave();
     
      }      //...infinito
}

por favor una ayudita  :mrgreen:

Desconectado japifer_22

  • PIC18
  • ****
  • Mensajes: 405
Re: comunicacion RS 485 entre 2 pic
« Respuesta #19 en: 02 de Octubre de 2009, 03:22:02 »
hola otra vez, bueno solucione mi problema con la comunicacion, pero para mi mala suerte no encuentro el MAX-485 por ninguna tienda. asi que yo creo que tendre que emigrar al MAX232. alquien tiene algun ejemplo de mastes/slave con esta comunicacion?? en este yo puedo hacer que el mastes y el esclavo se comporter como master/slave ??? osea que un pic s pueda transmitir datos y recivir datos ???. saludos aa y algun esquematico para ver la conexion de este mismo alguien tendra ???? :mrgreen: