ICTL

Control de interrupción

La instrucción ICTL sirve para habilitar o deshabilitar todas las interrupciones. Cada vez que se ejecuta la instrucción ICTL, se pueden establecer parámetros como el tipo y la validez de los programas de interrupción. La configuración se puede especificar en s1_Control y s2_Condition.

  • s1_Control: Área de 16 bits o constante equivalente para configurar el control de interrupción

  • s2_Condition: Área de 16 bits o constante equivalente para configurar la condición del disparo de interrupción

Parámetros

Entrada

s1_Control (WORD, INT, UINT)

Configuración del control de interrupción

s2_Condition (WORD, INT, UINT)

Configuración de la condición de ejecución

Observaciones

El número de programas de interrupción disponibles es:

16

módulos de interrupción (INT 0–INT 15)

8

módulos avanzados (módulos especiales, posicionamiento,...) (INT 16–INT 23)

1

programa de interrupción periódica (INT 24) (base de tiempo 0,5ms seleccionable para FP2/2SH, FP10SH)

La instrucción ICTL se debe ejecutar una sola vez en el flaco de subida de ICTL utilizando la instrucción DF Flanco de subida diferencial.

La misma condición de ejecución puede ser compartida por 2 ó mas instrucciones ICTL.

Bit

15 .. 8

7 .. 0

s1_Control

16#

Selección de la función de control

00: Control interrupción "habilitada/deshabilitada"

01: Borra la especificación de control

Selección del tipo de interrupción

00: Módulos de interrupción (INT 0–15)

01: Módulos avanzados (INT 16–23)

02: Interrupción periódica (INT 24)

s2_Condition

2#

Bit 0: 0 Programa de interrupción 0 deshabilitado

Bit 0: 1 Programa de interrupción 0 habilitado

Bit 1: 0 Programa de interrupción 1 deshabilitado

...

Bit 15: 1 Programa de interrupción 15 habilitado

Ejemplo: s2 = 2#0000000000001010

NOTA
  • Se puede comprobar el estado actual (activado/desactivado) de cada interrupción inicializada, monitorizando la variable del sistema sys_wInterruptMask_0_15.

  • Se puede comprobar el estado actual (activado/desactivado) de cada interrupción inicializada, monitorizando la variable del sistema sys_wInterruptMask_16_31.

  • Se puede comprobar el intervalo de interrupción seleccionado para las interrupciones periódicas, monitorizando la variable del sistema sys_iPeriodicInterruptInterval.

  • Si se escribe un programa en una tarea de interrupción, esta se habilita automáticamente durante la rutina de inicialización cuando arranca el programa.

  • Con la instrucción ICTL se puede habilitar o deshabilitar por programa una tarea de interrupción.

Modificado el: 2022-02-01Comentarios sobre esta páginaPanasonic hotline