Hola soy nuevo aqui y estoy aprendiendo a usar el compilador CCS para programar PIC's.
Mi duda es acerca de la interrupción INT_RDA la cual no me funciona ya que intento enviar un caracter por la terminal virtual en Proteus y me debe de regresar ese mismo caracter en un LCD, pero nada, creo ni siquiera entra a la interrupción. Ojalá puedan ayudarme. No tengo ningun problema en lenguaje ensamblador pero al intentarlo hacer en C no puedo.
Este es el codigo de programa:
----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
Gracias
Mi duda es acerca de la interrupción INT_RDA la cual no me funciona ya que intento enviar un caracter por la terminal virtual en Proteus y me debe de regresar ese mismo caracter en un LCD, pero nada, creo ni siquiera entra a la interrupción. Ojalá puedan ayudarme. No tengo ningun problema en lenguaje ensamblador pero al intentarlo hacer en C no puedo.
Este es el codigo de programa:
----------------------------------------------------------------------------------
Código:
#include <16F887.h>
#fuses HS, NOWDT, NOPUT, MCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, LVP, BORV40, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=pin_C6, rcv=pin_c7, bits=8, parity=N)
#use fast_io(B)
#use fast_io(C)
#include <LCD.c>
char ch;
#INT_RDA //SERVICIO DE INTERRUPCIÓN POR RS232
void rda_isr()
{
ch = getchar(); //Lee dato recibido
puts("Recibido"); //Desplega recibido en el LCD
}
void main() //Principal
{
set_tris_C(0x10111111); //C6->Salida; C7->Entrada
lcd_init();
enable_interrupts(INT_RDA); //Habilita interrupción por recepción RS232
enable_interrupts(GLOBAL); //Habilita interrupcion global
for( ; ; )
{
lcd_gotoxy(1,1);
printf(lcd_putc,"\n\r Valor %c",ch);
}
}
Gracias
Última edición: