Muy buenas noches, disculpen las molestias pero estoy tratando de montar una comunicación serial a través de un celu con el pic, cosa que leo miles de tutoriales pero no logro hacerlo andar. Trate de hacer lo mas simple, prender un led, pero en arduino si me funciona, la cuestión está cuando lo intento con pic, no lo logro, aclaro que soy autodidacta y ya me estoy dando por vencido. Por eso acudo a ustedes. Muchas gracias y disculpen las molestias.
Código del Receptor:
Circuito:
El emisor no subo el código porque ya lo probé en arduino y funciona, la cuestión es cuando lo paso a pic. Muchas gracias y espero una pronta respuesta ...
P.D.: Aclaro que la tensión con la cual alimento todo es de 3,7 V y que entre MCLR y Vcc tengo una resistencia de 10k. El oscilador que utilizo es de 20MHz con capacitores de 20pF, que creo que son para eliminar las armonicas
Código del Receptor:
Código:
#include <18F4550.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES BORV20 //Brownout reset at 2.0V
#FUSES NOPUT //No Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES NODEBUG //No Debug mode for 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 IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES PBADEN //PORTB pins are configured as analog input channels on RESET
#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
#FUSES MCLR //Master Clear pin enabled
#FUSES LPT1OSC //Timer1 configured for low-power operation
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL12 //Divide By 12(48MHz oscillator input)
#FUSES CPUDIV4 //System Clock by 4
#FUSES USBDIV //USB clock source comes from PLL divide by 2
#FUSES VREGEN //USB voltage regulator enabled
#FUSES ICPRT //ICPRT enabled
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, bits=8)
char dato;
#int_rda
rda_isr(){
dato=getc();
}
void main()
{
set_tris_a(0x00);
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(int_rda);
enable_interrupts(global);
if(dato=='1')
{
output_high(pin_a0);
delay_ms(5000);
}
if(dato=='2')
{
output_low(pin_a0);
delay_ms(5000);
}
}
Circuito:
El emisor no subo el código porque ya lo probé en arduino y funciona, la cuestión es cuando lo paso a pic. Muchas gracias y espero una pronta respuesta ...
P.D.: Aclaro que la tensión con la cual alimento todo es de 3,7 V y que entre MCLR y Vcc tengo una resistencia de 10k. El oscilador que utilizo es de 20MHz con capacitores de 20pF, que creo que son para eliminar las armonicas
Última edición: