关闭

OPNET自中断介绍

466人阅读 评论(0) 收藏 举报
分类:

所有这些中断函数在用户手册的中断部分有介绍。不过自中断不仅仅是写一个函数就能执行了,而且学会自中断我们可以做很多事情,学过硬件编程的人应该都知道,硬件编程中,很多功能如游戏的按键控制、通信触发生效等都是必须要通过中断来实现的。而OPNET里面中断略多,而自中断相对来说比较典型,比较难,所以就单独写了个自中断的介绍。

一、自中断:

代码:op_intrpt_schedule_self (op_sim_time () + dest_time, 0);

为了方便介绍,改成这样:op_intrpt_schedule_self (a, b);

a为时间,是double变量;表示我要在什么时间执行这个中断。其中op_sim_time()代表当前仿真时间,常在这出现,以方便我们能够决定自中断在这之后多久执行。

b表示自中断的序号,为什么要写这个序号呢?那就顺着下面的问题思考。

如果我写了多个自中断,我怎么知道当前发生的是哪一个中断?

所以,我们需要一个序号,来方便写代码的人能够区分出这是哪一个中断被触发了!

这个序号怎么用,如图:

 

这里定义了两个自中断,中断类型必须标明是自中断,然后中断序号就根据自己写中断的时候所定的序号写!

 

自中断怎么生效的?

 

就像前面我写的一样,我在这里写了一个自中断,我希望进程能够在这里随机的等待一段时间再开始执行正常的功能,所以只有等到这个时间到了,才会触发自中断。

定义自中断的代码(定义代码需写在头文件中):

#define SELF_INTRUPT0  (op_intrpt_type () == OPC_INTRPT_SELF && op_intrpt_code () == 0)

开始自中断的代码:

op_intrpt_schedule_self (op_sim_time () + dest_time, 0);

 

当时间从当前的时间走了dest_time之后,自中断触发了,然后程序就从delay1模块到了idle模块!

第一,不要享受懒惰。如果你从内心享受懒惰的过程就不要说自己累。第二, 让身体动起来。要运动, 多见朋友, 要工作, 不要喝酒,早睡早起。第三,任何事情,今天开始就要去做。如果现在不做就说明你还在享受着懒惰。如果做不到, 就请不要抱怨。

原文链接:http://www.cnblogs.com/abdamon/archive/2013/05/14/3077234.html

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2477次
    • 积分:41
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:4篇
    • 译文:0篇
    • 评论:7条
    文章分类
    文章存档
    最新评论