Autor Tema: PROBLEMA CON INT_RDA  (Leído 2391 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sha

  • PIC10
  • *
  • Mensajes: 28
PROBLEMA CON INT_RDA
« en: 15 de Noviembre de 2010, 14:16:32 »
Estoy haciendo un programa para recibir de PC.
Cuando no habilito la interrupción y pulso teclas en teclado, despúes no me funciona la interrupción.
Me podrías decir porque es esto.
Gracias.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: PROBLEMA CON INT_RDA
« Respuesta #1 en: 15 de Noviembre de 2010, 14:21:07 »
Si no habilitas la interrupción, no va a funcionar la interrupción. O no te has explicado correctamente  :mrgreen:
No contesto mensajes privados, las consultas en el foro

Desconectado sha

  • PIC10
  • *
  • Mensajes: 28
Re: PROBLEMA CON INT_RDA
« Respuesta #2 en: 15 de Noviembre de 2010, 14:29:30 »
Soy malo explicandome.
Lo que digo es que si yo mando algo desde PC a PIC sin estar habilitadas las interrupciones.
Después cuando las habilito, ya no me funciona la interrupción.
Gracias por contestar.
Lo dicho soy malo explicando.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: PROBLEMA CON INT_RDA
« Respuesta #3 en: 15 de Noviembre de 2010, 14:57:33 »
Soy malo explicandome.
Lo que digo es que si yo mando algo desde PC a PIC sin estar habilitadas las interrupciones.
Después cuando las habilito, ya no me funciona la interrupción.
Gracias por contestar.
Lo dicho soy malo explicando.

Tampoco se entendió mucho, pero asegúrate de que el buffer está vacío, y si hubo un overflow borrar los bits correspondientes y reiniciar la comunicación. En el datasheet del microcontrolador se explica eso.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado sha

  • PIC10
  • *
  • Mensajes: 28
Re: PROBLEMA CON INT_RDA
« Respuesta #4 en: 16 de Noviembre de 2010, 05:14:12 »
Hola de nuevo.
He echo este programa de prueba.
Lo tengo conectado a hyperterminal.
Cuando pulso PIN_A0 habilito interrupción, pulso cualquier tecla PC y me aparece en LCD.
Si pulso PIN_A1 deshabilito interrupción, pulso cualquier tecla en teclado de PC y no me aparece en LCD pero en cuanto pulso PIN_A0 me aparecen los caracteres que había pulsado cuando estaba deshabilitada la interrupción.
Si pulso muchas teclas estando deshabilitada interrupción se queda colgado PIC.

Este es el programa.

Gracias.


#include   <16F876.h>
#include   <STRING.h>

#fuses   XT,NOWDT,PUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,NOCPD,NOWRT
#use      delay   (clock=4000000)
#use      rs232   (baud=9600, xmit=PIN_C6, rcv=PIN_C7, parity=N, bits=8)   //manejo del RS232
#include   <flex_lcd.h>


void   serial_isr   (void);
void   Add_buffrec   (char c);

#int_rda
void   serial_isr()
   {
      output_low(PIN_B0);
      if(kbhit())
         {
            Add_buffrec(getc());
         }         
   }   
void   Add_buffrec   (char c)
{   
   output_low(PIN_B1);
   lcd_putc(c);
}
void   main      (void)
{
   SET_TRIS_A(0xFF);               //Configuramos Puerto A como entradas
   SET_TRIS_B(0x00);

      OUTPUT_B(0x00);
   
   lcd_init();
   
   lcd_putc("Esperar");
   
   delay_ms(5000);
      
   lcd_init();
   
   while   (true)
   {
      if   (input(PIN_A0))
         {   
            enable_interrupts(GLOBAL);
            enable_interrupts(int_rda);
            output_high(PIN_B0);
            while   (input(PIN_A0))
               {
               }
         }
      if   (input(PIN_A1))
         {   
            disable_interrupts(int_rda);
            while   (input(PIN_A1))
               {
               }
         }
   }   
}

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: PROBLEMA CON INT_RDA
« Respuesta #5 en: 16 de Noviembre de 2010, 06:26:18 »
Es que una cosa es que deshabilites la interrupción, y otra muy distinta que deshabilites la USART. Se te llena el buffer y por eso se te cuelga.
Tendrás que deshabilitar la USART aunque no sé cómo se hace en CCS.

Desconectado sha

  • PIC10
  • *
  • Mensajes: 28
Re: PROBLEMA CON INT_RDA
« Respuesta #6 en: 16 de Noviembre de 2010, 06:51:41 »
Gracias por contestar a todos.
Si pongo setup_uart(false) o setup_uart(true), lo habilito o no.
y me funciona.
Muchas gracias.
Lo vi en el include del PIC.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: PROBLEMA CON INT_RDA
« Respuesta #7 en: 16 de Noviembre de 2010, 07:03:47 »
Perfecto, pues ya aprendí cómo se hace  :D

Desconectado lasv

  • PIC10
  • *
  • Mensajes: 6
Re: PROBLEMA CON INT_RDA
« Respuesta #8 en: 15 de Julio de 2011, 12:53:26 »
Hola muchachos que tal? saben que tengo un problema parecido al que tenia sha... Estoy trabajando con un GPS y la INT_RDA! pero que sucede? cuando solicito la trama que filtro para obtener los valores de la misma el PIC lo hace muy bien, pero cuaNDo envio la trama al pic por segunda vez no lo hace,o sea, solo lo hace una vez! :S para que lo vuelva a hacer debo reiniciar el micro.. mi pregunta es.... el buffer esta lleno? como lo limpiaria? por lo menos yo en mi codigo cada vez que me llega un dato limpio el registro tx.. bueno si saben como podria solucionar me avisan.. gracias desde venezuela!


 

anything