Autor Tema: Problema Novato Interrupciones RB4-7  (Leído 1854 veces)

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

Desconectado zeus2

  • PIC10
  • *
  • Mensajes: 1
Problema Novato Interrupciones RB4-7
« en: 08 de Julio de 2005, 16:57:00 »
Hola,

Soy un novato en esto de los PIC y he encontrado mi primer problema al tratar de probar las interrupciones del 16F84A (en concreto la que salta al cambiar RB4-7). El código es:

#include <16F84A.h>
#fuses NOWDT,XT, NOPUT, NOPROTECT
#use delay( clock = 4000000 ) /* reloj de 4 MHz */
#byte puerto_b = 06

#int_rb
rsi_puerto_b()
{
   delay_us(500000);
   bit_set(puerto_b, 0);
   delay_us(500000);
   bit_clear(puerto_b, 0);
}

void main(void)
{
   set_tris_b(0xF0);
   enable_interrupts(INT_RB);
   enable_interrupts(GLOBAL);
   puerto_b = 0;
   for (;;);
}

Y el problema es que la interrupción me salta continuamente (tengo un pulsador conectado a RB5, pero no hay problemas de rebote ya que si dejo en CA RB4-7 sigue igual). Me gustaría que alguien me ayudara y así poder seguir aprendiendo.

Un saludo desde Canarias.

Desconectado piriots

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
RE: Problema Novato Interrupciones RB4-7
« Respuesta #1 en: 08 de Julio de 2005, 17:59:00 »
Creo que lo que te pasa es que como la interrupcion es por cambio de estado en cualquiera de las patillas, te salta la interupcion cuando pulsas el pulsador y cuando lo sueltas vuelve a entrar a la interrupcion. Prueba a usar esta mascara.

delay_ms(70);   //  esperamos para evitar rebotes
  if(!(port_b^0xF0)) // si se produce al soltar el pulsador
  return;         // salimos de la interrupcion.

Salu2