uff otra vez mas con dudas. como bien dice el titulo tengo en mis manos un pic de la familia de los 18f el cual es el 18f6520, he revisado su data sheet y me dice que tiene 2puertos seriales, bueno, por otro lado hace algunas semanas quevengo metiendome con esto de los pic 18f, y asta el momento me avia a resultado de lo mas bn, pero ahora tengo un problema y no se si es el codigo o el proteus, pues el codigo es muy basico, y el ccsc no me da ningun error, el cual ensiende y apaga unos led por medio de 2 entradas seriales a lpic, pero en el momento de simular me da un error el proteus y no se por que, aver si me ayudan a detectar el problema por favor.
#include <18f6520.h> // PIC utilizado
//#fuses HS,NOWDT,NOPROTECT,PUT // Configura el hardware del micro
#device HIGH_INTS=TRUE // PRIORIDAD ALTA DE INTERUPCION
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOPUT //No Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES NOSTVREN //Stack full/underflow will not cause reset
#FUSES DEBUG //Debug mode for use with ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#use delay (clock=4000000) //clock=20Mhz
#USE RS232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7,stream=radio)
#USE RS232(BAUD=9600, XMIT=PIN_G1, RCV=PIN_G2,stream=antena)
char lectura_radio=0x00,lectura_antena=0x00;
#int_RDA //interrupcion para la resepcion del master
void serial_isr()
{
if(kbhit()) { //Esto es para que no se cuelgue el pic
lectura_radio=fGETC(radio); //guarda el valor enviado por el puerto serie
}
}
#INT_RDA2
void serial_isr_2()
{
if(kbhit()) { //Esto es para que no se cuelgue el pic
lectura_antena=fGETC(antena); //guarda el valor enviado por el puerto serie
}
}
void main(){
enable_interrupts(INT_RDA); // Habilita Interrupción RDA
enable_interrupts(INT_RDA2);
enable_interrupts(GLOBAL); //todas las interrupciones activadas
set_tris_d(0x00); // Todo el puerto B es salida
printf("\rprimera prueba de comunicacion\n");
printf("\r\serial para el PIC18f452\n\n\n\n");
while(TRUE){
switch (lectura_radio){
case '1':
output_high(PIN_D0);
break;
case '3':
output_high(PIN_D1);
break;
case '5':
output_high(PIN_D2);
break;
case '7':
output_high(PIN_D3);
break;
case '9':
output_high(PIN_D4);
break;
}
switch (lectura_antena){
case '2':
output_low(PIN_D0);
break;
case '4':
output_low(PIN_D0);
break;
case '6':
output_low(PIN_D0);
break;
case '8':
output_low(PIN_D0);
break;
case '0':
output_low(PIN_D0);
break;
}
}
}
y el proteus lo adjunto