跳到主要内容

15.4.22 中断指令

15.4.22.1 IRegister

说明: 注册中断,确定中断是否可以单次触发、是否可调试(单步、单步暂停下触发中断),以及中断号、触发信号、触发类型。一个触发源只能绑定一个中断函数。

定义:

IRegister([\SINGLE,][\DEBUG,] int_num, signal, trigger_type, trap_function);
//[]内为可选项
  • int_num:数据类型:中断号变量,用作中断的标识。

  • signal:寄存器信号/DI 信号。

  • trigger_type:触发方式。

    • DI 信号触发方式:

    • \Posflank :上升沿触发

    • \Negflank :下降沿触发

    • \Highlevel :高电平触发

    • \Lowlevel :低电平触发

    • 注意:高低电平触发会持续触发中断

    • 寄存器(int\bool\bit\byte)触发方式:0 代表低电平,非 0 代表高电平。

  • trap_function:中断函数名。

  • \SINGLE:单次触发,可选项。

  • \DEBUG:可调试,可选项,添加此参数后可在单步、单步暂停状态触发中断。

示例:

IRegister \SINGLE, \DEBUG, intnum0, DI1_0, \Posflank, "trapfun1";
//注册中断,当DI 信号DI1_0 发生上升沿变化时,执行trapfun1 函数,触发一次后不再响应此中断;此中断可在单步和单步暂停状态触发;intnum0 为此中断的标识符,用于IEnable、IDisable、GetTrapData 指令

15.4.22.2 IEnable

说明: 激活被 IDisable 禁用的中断,前瞻触发(IRegister 后默认是激活的)。

定义:

IEnable(int_num);
  • int_num:数据类型:中断号变量, 用作中断的标识

示例:

IEnable(intnum0);
// 激活 intnum0 对应的中断,激活后可被绑定的信源触发

15.4.22.3 IDisable

说明: 禁用某个中断,前瞻触发。需要注意的是选择单次触发的中断,在被 IDisable 后收到中断信号,仍视为单次触发结束。

定义:

IDisable(int_num);
  • int_num:数据类型:中断号变量, 用作中断的标识

示例:

IDisable(intnum0);
// 禁用 intnum0 对应的中断,禁用后不可被绑定的信源触发

15.4.22.4 GetTrapData

说明: 获取某中断的信息,前瞻触发。

定义:

GetTrapData(int_num, str);
  • int_num:数据类型:中断号变量, 用作中断的标识

  • str:数据类型:接收中断信息的字符串。

示例:

GetTrapData(intnum0, string0);
//获取int num0 对应的中断信息,将信息放入string0