--------------------------------------------------------------------------------
hola a todos saben tengo un problema quiero crear una interfaz donde pueda leer un numero que venga del puerto rs232 al pic y el pic encienda unos leds pero pasa que le envio el numero con el programa de matlab y trato de leerlo con este mismo programa y me salen puras cosas raras como numeros 255 y 254 y no se porque la verdad es que soy nueva en esto les dejo mi codigo haber si alguien detecta la falla ya que llevo 15 dias y yo no la encuentro auxiliiiioooooo jaja
#include <18F2550.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz 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
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
void main()
{
char d1;
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
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);
////////////////////
set_tris_B(0x01);
output_high(PIN_A0); // pone el pin a 1
delay_ms (50);
output_low(PIN_A0); // pone el pin a 0 // espera 1 segundo
do{
if (kbhit())
{
d1=getch();
delay_ms (50);
putc(d1);
delay_ms (50);
// printf("hola estas hay");
//delay_ms (500);
output_high(PIN_B0); // pone el pin a 1
delay_ms (50); // espera 1 segundo
output_low(PIN_B0); // pone el pin a 0
delay_ms (50); // espera otro segundo,
}
switch( d1 ) {
case '1':
output_high(PIN_B0); // pone el pin a 1
delay_ms (500); // espera 1 segundo
output_low(PIN_B0); // pone el pin a 0
delay_ms (500); // espera otro segundo,
break;
case '2':
output_high(PIN_A0); // pone el pin a 1
delay_ms (500); // espera 1 segundo
output_low(PIN_A0); // pone el pin a 0
delay_ms (500); // espera otro segundo,
}
} while (TRUE); // bucle infinito
// TODO: USER CODE!!
}