Autor Tema: Comunicación RS232 con PIC24F08KA101  (Leído 1874 veces)

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

Desconectado Morpheo1983

  • PIC10
  • *
  • Mensajes: 1
Comunicación RS232 con PIC24F08KA101
« en: 11 de Mayo de 2010, 11:01:11 »
Hola a todo el mundo!

Estoy intentando programar un PIC24F08KA101 para que se comunique con un PIC18F4550 a través de unos módulos XBee por radiofrecuencia. Las ordenes se envien con comandos rs232, por lo que no debería ser difícil. Consigo que el PIC18F4550 me envíe un caracter "a" o "b" dependiendo del pulsador que haya sido activado, pero al PIC24F no le llega nada, o no consigo verlo (debería enecender un led u otro dependiendo del carácter recibido. Realizando comprobacones se que el emisor envía correctamente. Os dejo el código de ambos, por si alguien pudiera echarme una madno, muchas gracias!!

CODIGO EMISOR PIC18F4550:
#include "PIC18F_XBee.h"
#use delay(clock=48000000)          //Frecuencia máxima de trabajo

//#use rs232(baud=9600,UART1,parity=N,bits=8)     //Defino modo RS232

#include <stdlib.h>

void main(){
   while(TRUE){
      if(!input(PULS_1)){
         output_toggle(LED_1);
         delay_ms(200);
         printf("a");            //envía señal a
      }
      else if(!input(PULS_2)){
         output_toggle(LED_2);
         delay_ms(200);
         printf("b");            //envía señal b
      }
      else{
         output_high(LED_3);
         output_high(LED_4);
      }
   }
}

CÓDIGO RECEPTOR PIC24F08KA101
#include "\PIC24F_XBee.h"

#use delay(clock=32000000)

#use rs232(baud=9600,xmit=PIN_B7,rcv=PIN_B2,parity=N,bits=8,errors)

#include <stdlib.h>

char x;

void main(){
   while (TRUE){
      if (kbhit()){
         x = getch();
      }
      if (x=='a'){
         output_high(LEDA);
      }
      else {
         output_high(LEDV);     
      }
   }
}