Autor Tema: No termino de comprender el tema de las interrupciones  (Leído 2459 veces)

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

Desconectado Mario87

  • PIC10
  • *
  • Mensajes: 25
No termino de comprender el tema de las interrupciones
« en: 06 de Abril de 2007, 12:52:42 »
Es decir, se lo que son y para que sirven, y en principio creo que se como se ejecutan (el PIC comprueba antes de realizar una instruccion si se ha producido una interrupcion comprobando la flag correspondiente, y si ha ocurrido guarda el valor de CP, realiza las tareas en la funcion que hayas definido como interrupcion, y el terminarlas vuelve a sacar CP de la pila y continua su camino).

Lo que no entiendo son los tipos. Obsrevando el archivo 12f629.h (es el pic que estoy usando) aparece:
Código: [Seleccionar]
#define GLOBAL                    0x0BC0
#define INT_RTCC                  0x0B20
#define INT_EXT                   0x0B10
#define INT_TIMER1                0x8C01
#define INT_TIMER0                0x0B20
#define INT_EEPROM                0x8C80
#define INT_COMP                  0x8C08
#define INT_RA                    0xFF0B08
#define INT_RA0                   0x010B08
#define INT_RA1                   0x020B08
#define INT_RA2                   0x040B08
#define INT_RA3                   0x080B08
#define INT_RA4                   0x100B08
#define INT_RA5                   0x200B08
no entiendo que haya tantas ni para que son, hasta donde yo se una interrupcion se ejecuta cuando la patita INT especificada en el datasheet cambia de 0 a 1 o viceversa segun lo programes, y eso es lo que pretendo precisamente con este codigo:
Código: [Seleccionar]
#include <12f629.h>             
#use delay (clock=4000000)

#int_ext
void INTRA2()
{
   output_high(PIN_A0);
   delay_ms(3000);
   output_low(PIN_A0);   
}

void main(void)
{
   set_tris_a(0b11111110);   
   enable_interrupts(int_ext);
   EXT_INT_EDGE(h_to_l); 
   enable_interrupts(GLOBAL);
   output_low(PIN_A0);   
   do{   
 
   }while(TRUE);             
}

Se supone que el PIC debería de estar en un bucle infinito hasta que  se introduzca un 0 en la patita INT, y entonces durante tres segundos el pin A0 se pondrá a uno para despues volver a 0.
No funciona y no lo comprendo, a ver si alguien me ilumina.

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: No termino de comprender el tema de las interrupciones
« Respuesta #1 en: 06 de Abril de 2007, 13:52:31 »


    pues parece estar todo en su lugar, deberia funcionar.


         talvez sea algun problema de tus #fuses, o algo asi, podrias ponerlos??

       usas cristal u oscilador interno??, desabilita comparadores, habilitas Watch Dog??, MCLR?''


           No se, revisa el hardware...


                     Suerte  :-/                 


             

Desconectado Mario87

  • PIC10
  • *
  • Mensajes: 25
Re: No termino de comprender el tema de las interrupciones
« Respuesta #2 en: 06 de Abril de 2007, 14:09:09 »
los fuses son estos:
INTRC_IO,NOWDT,NOPROTECT,PUT,MCLR,BROWNOUT

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: No termino de comprender el tema de las interrupciones
« Respuesta #3 en: 06 de Abril de 2007, 15:09:49 »

      Pues ya solo te puedo decir lo obvio.


            asegurate de tener una resistencia del pin 4 a Vcc por tener MCLR, una buena fuente que te de los 5v como deben de ser por el BROWNOUT.

                no se, haber que opina alguien mas.

Citar
no entiendo que haya tantas ni para que son, hasta donde yo se una interrupcion se ejecuta cuando la patita INT especificada en el datasheet cambia de 0 a 1 o viceversa segun lo programes

       Date una vuelta por aca Link y haber si te sirve de algo, eso en cuanto a las RA, RA1,...

   En el CCS fijate en el menu View y por ahi te dice para que es cada interrupcion, te debe aparecer algo asi.
       
             

       Saludos   :-)

Desconectado Mario87

  • PIC10
  • *
  • Mensajes: 25
Re: No termino de comprender el tema de las interrupciones
« Respuesta #4 en: 06 de Abril de 2007, 15:31:42 »
muchas gracias Rulo me has sido de gran ayuda, era una dichosa resistencia lo que me faltaba :x al final ha resultado ser el fallo mas tonto posible :mrgreen:
Ahora mismo compruebo eso que me has dicho en el CCS, a ver si aprendo mas sobre las interrupciones

gracias de nuevo y un saludo

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: No termino de comprender el tema de las interrupciones
« Respuesta #5 en: 06 de Abril de 2007, 18:19:05 »


   Jaja, no te preocupes, a todos nos han pasado cosas similares, y animo que aqui en el foro hay muchisima informacion. Una vez que uno empieza con esto de los pics ya no se puede parar.

           Saludos  :mrgreen:


 

anything