Autor Tema: Pic no respeta la abilitacion de interruciones  (Leído 1176 veces)

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

Desconectado oman

  • PIC10
  • *
  • Mensajes: 14
Pic no respeta la abilitacion de interruciones
« en: 18 de Mayo de 2011, 14:07:49 »
buen dia a todos.

tengo un ploblema que no he podido resolver, quisiera que ustedes me orientaran.
el proble radica en que el pic no respeta la habilitacion/desabilitacion de las interrupciones.

enseguida parte de mi codigo:

#int_rda
void serial_isr() // Interrupcion recepcion serie USART
{
   rcvchar=0x00;  //inicializo el caracter recibido
   if(kbhit())          //si hay algo pendiente por recibir
   {
      rcvchar=getchar();   // lo descargo
      addcbuff(rcvchar); //lo añado al buffer
   }
  return;
}


void main()
{
     disable_interrupts(global);                                                                                        //
     disable_interrupts(int_rda);                                                                                      //
                                                                                                                                  //
     instruccion x;                                                                                                          //
     intruccion x+1;  // Son intrucciones ajenas a la recepcion de mensajes por la usart.     // en este lapso no me interesa guardar los datos que me estan llegando.
     intruccion x+n;                                                                                                        //


      enable_interrupts(global);
      enable_interrupts(int_rda);                                                                          // de aqui en adelante si me interesa recibir lo que se me manda.

     
     instruccion y;     //Este lapso de tiempo es el que me interesa para que el pic empiese a recibir lo que se le manda.
     intruccion y+1;  // Son intrucciones ajenas a la recepcion de mensajes por la usart.
     intruccion y+n; 


         int i;     
         for(i=0; i<=85 ;i++)      //A qui solo muestro en una lcd lo que me llega al pic.
         {
             printf(lcd_putc,"\fcbuff= %c",cbuff);
             delay_ms(2000);
         }
         printf(lcd_putc,"\f%s",cbuff);

  }   


el problema que solo se muestra codigos que me llegan al pic, pero lo que no entiendo de esto, es que son caracteres que me llegan cuando tengo desabilitado las interrupciones:

     disable_interrupts(global);
     disable_interrupts(int_rda);

pero yo supongo que el pic actua como sino respetara estas intrucciones. que estoy haciendo mal.

si no quedo claro y necesitan mas datos para entenderme mejor por favor aganmelo saber.

agradesco cualquier tipo de ayuda que me puedan dar.

saludos a todos.


 

anything