Autor Tema: Peripheral Interrupts  (Leído 3126 veces)

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

Desconectado _CMaGNo_

  • PIC10
  • *
  • Mensajes: 27
Peripheral Interrupts
« en: 23 de Abril de 2006, 17:17:56 »
Hola! ... existe alguna manera de "limpiar" las banderas del registro de interrupciones perifericas (PIR1), que en ensamblador seria ...

Código: [Seleccionar]
clrf PIR1

O simplemente esa limpieza la hace automaticamente el CCS C cuando llama a las funciones manejadoras de interrupciones (las que van despues de la directivas tipo #INT_XXX).

Otra cosa, se puede en CCS C activar las interrupciones perifericas con una sola instruccion ....

Código: [Seleccionar]
bsf INTCON, PEIE

O hay que activar una por una ....
enable_interrupts(INT_AD);
enable_interrupts(INT_PSP);
.
.
.
enable_interrupts(INT_CCP1);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_TIMER2);

Gracias!!!

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Peripheral Interrupts
« Respuesta #1 en: 23 de Abril de 2006, 17:52:00 »
Amigo _CMaGNo_

1º.- Los flags de interrupción los limpia automáticamente CCS C.

2º.- Cada interrupción ha de ser habilitada específicamente, así como la habilitación general de interrupciones.

Te pego el trozo dedicado a esto del Manual del CCS C:

Código: [Seleccionar]
ENABLE_INTERRUPTS( )

  Syntax: enable_interrupts (level)

  Parameters: level - a constant defined in the devices .h file

  Returns: undefined

  Function: Enables the interrupt at the given level. An interrupt procedure
                should have been defined for the indicated interrupt. The GLOBAL level
                will not enable any of the specific interrupts but will allow any of the specific
                interrupts previously enabled to become active.

  Availability: Device with interrupts (PCM and PCH)

  Requires: Should have a #int_xxxx, Constants are defined in the devices .h file.

  Examples:
    enable_interrupts(INT_TIMER0);
    enable_interrupts(INT_TIMER1);
    enable_interrupts(GLOBAL);

  Example Files: ex_sisr.c, ex_stwt.c

  Also See: disable_enterrupts(), #int_xxxx

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado _CMaGNo_

  • PIC10
  • *
  • Mensajes: 27
Re: Peripheral Interrupts
« Respuesta #2 en: 23 de Abril de 2006, 23:23:45 »
Ok redpic, gracias por la respuesta, sos muy amable!

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Peripheral Interrupts
« Respuesta #3 en: 09 de Enero de 2009, 23:32:38 »
Esto de las interrupciones "perifericas" me desorienta un poco... entiendo que PEIE habilita las interrupciones del registro PIR... pero no mucho mas... supongo que PEIE lo habilita automaticamente el CCS, porque acabo de enterarme de que existe, nunca lo habia habilitado y aun asi las interrupciones me funcionaban... pero cual seria el comando para habilitar/deshabilitarlas? en la ayuda del ccs no encontre que trataran este tema.
ademas, a que se le llama interrupcion periferica? porque TMR1 y 2 son perifericas, pero TMR0 no... que caracteristica hace que una interrupcion sea PIR o INTCON?
La verdad que no me urge la respuesta, ya que no tengo ningun problema asociado a esto... solo es curiosidad  :-)
Salu2!
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

jacrmr

  • Visitante
Re: Peripheral Interrupts
« Respuesta #4 en: 10 de Enero de 2009, 02:13:09 »
El TMR0 ya existía en las familias que no usaban interrupciones (PIC16C5X). Sólamente contaba, no generaba interrupciones, por lo mismo no forma parte de la lógica de interrupciones de los periféricos. La interrupción del pin INT así como los cambios en RBX se consideran parte del core, no precisamente son periféricos.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Peripheral Interrupts
« Respuesta #5 en: 13 de Enero de 2009, 01:05:43 »
Dudas = Dudas - 1  :mrgreen:
Gracias!
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.