resulta q tengo un problema, estoy ensayando comunicar 2 pic mediante RS232 lei
estepost de don Diego para iniciarme, en principio tengo en un PIC dos entradas analogas y mostrando por Lcd el valor del las conversiones y el voltaje, adicionalmente envio el valor de una de las conversiones(valor del ADC) hacia el otro, este PIC debe mostrarse en el Lcd el valor recibido. Pues bien el segundo pic no muestra el valor recibido y siempre muestra un 10.. le pongo el virtual terminal al primer pic y sale el valor correcto, pero cuando quiero mostrar en el otro ahí esta el problema..entonces no doy con el error,,no se si seran los formatos para las variables.
adjunto el codigo,supongo que lo q no he de utilizar no ha de causar problema.
Codigo primer PIC, convierte AN0 AN1 y muestra en LCD, Envia valor ADC
#include "flex_lcd.c"
/* #######################INTERRUPCIONES##########################
#int_RB //CAMBIO DE NIBBLE
void RB_isr(void)
{
}
#int_EXT
void EXT_isr(void)
{
}
#int_RDA //INTERRUPCION POR RECEPCION SERIE
void RDA_isr(void)
{
}
#int_TIMER0 //INTERRUCPION DESBORDAMIENTO TMR0
void TIMER0_isr(void)
{
}
#####################################################################*/
int8 O,Q;
FLOAT P,R;
void main()
{
setup_adc_ports(AN0_AN1_VREF_VREF);
setup_adc(ADC_CLOCK_DIV_8);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RB);
enable_interrupts(INT_EXT);
enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER0);
//enable_interrupts(GLOBAL);
LCD_INIT();
LCD_PUTC("PRUEBA LCD");
DELAY_MS(1000);
LCD_PUTC("\f");
FOR(;;)
{
SET_ADC_CHANNEL(0);
DELAY_US(20);
Q=READ_ADC();
SET_ADC_CHANNEL(1);
DELAY_US(20);
O=READ_ADC();
P=(5.0*Q)/255.0;
R=(5.0*O)/255.0;
PRINTF(LCD_PUTC,"\fADC'S=%u %u",Q,O);
PRINTF(LCD_PUTC,"\nV1=%1.2fV V2=%1.2fV",P,R);
PRINTF("%u\r\n",Q);
DELAY_MS(500);
}//FIN DEL FOR
}//FIN DEL MAIN
Este es el codigo del PIC que deberia recibir y mostrar en LCD el dato del ADC
#INCLUDE "FLEX_LCD.C"
int8 C=0;
/*#int_RB ####################INTERRUPCIONES#################################
void RB_isr(void)
{
}*/
/*#int_EXT
void EXT_isr(void)
{
}*/
#int_RDA
void RDA_isr(void)
{
C=GETC();
}
/*#int_TIMER0
void TIMER0_isr(void)
{
}
#################### #################### #################### ####################*/
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
// enable_interrupts(INT_RB);
// enable_interrupts(INT_EXT);
enable_interrupts(INT_RDA);
// enable_interrupts(INT_TIMER0);
LCD_INIT();
enable_interrupts(GLOBAL);
FOR(;;)
{
PRINTF(LCD_PUTC,"\f%u",C);
DELAY_MS(500);
}
}//FIN DEL MAIN
De antemano gracias por la ayuda