Hola amigos, quisiera saber si alguno de ustedes a podido llevar a cabo la comunicación rs232 en un pic 12F18022, pues me esta dando problemas y no se por que si ya lo he echo antes en otros pic.
Estoy programando en picc ver 4.130 y programo con mplab V 8.92 que la que incluye este pic.
Este es mi .h
#include <12F1822.h>
#device adc=16
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES NOCPD //No EE protection
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOIESO //Internal External Switch Over mode disabled
#FUSES WDT_SW //No Watch Dog Timer, enabled in Software
#FUSES NOWRT //Program memory not write protected
#FUSES PLL_SW //4X HW PLL disabled, 4X PLL enabled/disabled in software
#FUSES NOSTVREN //Stack full/underflow will not cause reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOPUT //No Power Up Timer
#use delay(int=4000000)
#use FIXED_IO( A_outputs=PIN_A5,PIN_A4,PIN_A3,PIN_A2)
#use rs232(baud=9600,parity=N,xmit=PIN_A0,rcv=PIN_A1,bits=8,stream=PORT1)
y este el codigo C.
#include <Puerto.h>
#int_RDA
#define verde pin_a5
#define rojo pin_a2
#define verde_on output_high(verde);
#define verde_off output_low(verde);
#define rojo_on output_high(rojo);
#define rojo_off output_low(rojo);
char dato;
void RDA_isr(void)
{
dato = getc();
switch(dato)
{
case 'a': verde_on;
break;
case 'b':verde_off;
break;
}
}
void main()
{
setup_oscillator(OSC_4MHZ|OSC_TIMER1|OSC_PLL_OFF,0);
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_spi(SPI_SS_DISABLED);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
port_a_pullups(FALSE);
// output_a(0x00);
//SET_TRIS_A(0x02);//RA1 como entrada
while(TRUE)
{
;
}
}
lo que hago es que envio un par de letras por el puerto del pc para encender o apagar un led, tambien me gustaria tratar de recivir un arreglo de x posiciones y leer cada posicion por separado pero no se como hacerlo. Alguien sabe?
Bueno eso por el momento, muchas gracias amigos por el tiempo dedicado a mis inquietudes.