Autor Tema: Problemas con interrupcion en CCs  (Leído 1184 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado walter_bloom66

  • PIC10
  • *
  • Mensajes: 3
Problemas con interrupcion en CCs
« en: 08 de Agosto de 2012, 13:56:22 »
Hola, estoy empezando a trabajar en ccs con interrupciones,por Rb0 y por rb4-rb7. Hice un programa sencillo que cambie el tiempo de parpadeo de 4 leds conectados al puerto a y un solo pulsador conectado a RB7. He simulado el programa paso a paso y cuando se activa la interrupción, el programa queda dentro de la interrupción del puerto y no sale y no puedo darme cuenta donde esta el error. Hice este mismo programa con la interrupción por RB0 y el programa funciona, cuando al programa quiero agregarle la interrupción de RB4-RB7 y trabajar con las dos, no hay forma que funcione, así que decidi realizar la rutina de RB4-Rb7 por separado. Si alguien tiene idea de donde esta el error agradecería que me avise. Gracias.

Aquí esta el código:

#include <16f873a.h>
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP
#use delay (clock=4000000)
#use fast_io(a)
#use fast_io(b)


short cont=0;
long tiempo=1000;

//LLAMADA FUNCION INTERRUPCION
#INT_RB
void IntPortB4_7()  // Solo esta conectado RB7-no es necesario identificar que pin fue el que cambio
{
   if(cont==0)
   {
      cont=1;
      tiempo=200;
   }
      else
   {
      cont=0;
      tiempo=1000;
   }
}

void main(void)
{
   set_tris_a (0b00000000);
   set_tris_b (0b11111110);
   enable_interrupts(int_rb);      //activar interrupcion rb4:7
   enable_interrupts(GLOBAL);      //activar interrupciones
   for(;;){
   delay_ms(tiempo);
   output_a(255);
   delay_ms(tiempo);
   output_a(0);
          }
}


Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Problemas con interrupcion en CCs
« Respuesta #1 en: 08 de Agosto de 2012, 14:37:55 »
Hola, debes adicionar en la interrupción una lectura del puerto, algo así.

int variable = portb;

de esta forma el compilador reconoce el estado del puerto para un próximo evento.

Saludos


 

anything