hola a todos nuevamente tengo un problema enviando cadena de caracteres ya estuve en el foro y logre enviar un caracter y pense que de ahi era facil enviar una palabra como tal!! pero nada el caso es que tengo 3 pic que envian señales por rf (modulos) y estos hacen bien el envio pero el receptor no lo hace bien, aqui les envio el codigo pero que no da
. espero que me ayuden si ven el error hagamelo saber.Gracias de antemano!!
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <18F4620.h>
#device adc=8
#use delay(clock=4000000)
#fuses NOWDT,WDT128,XT, NOPROTECT, IESO, BROWNOUT, BORV21, NOPUT, NOCPD, NOSTVREN, NODEBUG, NOLVP, NOWRT, NOWRTD, NOEBTR, NOCPB, NOEBTRB, NOWRTC, NOWRTB, NOFCMEN, NOXINST, NOPBADEN, NOLPT1OSC, NOMCLR
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <stdio.h>
#include <string.h>
#ZERO_RAM
void main()
{
char var[8], m1[8]="modulo1", m2[8]="modulo2", m3[8]="modulo3";
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
while (input(PIN_A0)==1) //interruptor de encendido
{
while(1){
if (kbhit()) // Espera a que haya algo en la UART
{
gets(var); // Recibe lo que entra por la UART (RF)
if (strcmp(var,m1) ==0) // MODULO 1
{
while(!input(PIN_C0))
{
output_bit (PIN_B0,1); // prende el led
output_bit (PIN_B3,1); //prende el motor
};
delay_ms(100);
if (input(PIN_C0)==1) // interruptor de apagado
{
output_b(0x00);
delay_ms(200);
puts("apagar"); //apaga el envio.
delay_ms(600);
}
}
if (strcmp(var,m2)==0) // MODULO 2
{
while(!input(PIN_C0))
{
output_bit (PIN_B1,1); // prende el led
output_bit (PIN_B3,1); //prende el motor
};
delay_ms(100);
if (input(PIN_C0)==1) // interruptor de apagado
{
output_b(0x00);
delay_ms(200);
puts("apagar");
delay_ms(600);
}
}
if (strcmp(var,m3)==0) // MODULO 3
{
while(!input(PIN_C0))
{
output_bit (PIN_B2,1); // prende el led
output_bit (PIN_B3,1); //prende el motor
};
delay_ms(100);
if (input(PIN_C0)==1) // interruptor de apagado
{
output_b(0x00);
delay_ms(200);
puts("apagar");
delay_ms(600);
}
}
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7
estuve intentando por la interrupcion RDA_isr pero no llegue a nada solo tengo la idea.....