前言:使用CPAL往往想要发送周期性的报文这时就需要定时器来完成周期性报文的发送。关于报文的发送,会有下面的章节介绍,本章主要讲解定时器的操作。
1:定时器的种类。
在CAPL中定时器分两种:一种是以秒为单位的定时器,另外一种是以毫秒为单位的定时器.
2.首先需要在Variables中定义定时器变量,如:
定义完成定时器变量后要定义定时器的处理函数
On timer 定时器{
}
如下图
定义完定时器变量后,还要定义定时器的周期,也就是多久触发一次定时器处理函数。
一般定时器周期的定义需要在CAPL启动时定义,当然,也可以在需要启动定时器再定义也是可以的。这里以启动时定义做为例子。
CAPL启动时要处理的事情可以放在on start中处理,如下图
设置定时器周期需要调用SetTimer来完成,它对毫秒定时器和秒级定时器是一样的。但是设置的参数分别代表毫秒和秒。
实现让定时器每个周期加1,分别定义了两个Varible来记录定时器处理函数被调用的次数。
添加处理函数如下:
运行CanOE并在Write窗口中观查
可以发现定时器只执行了一次。在CAPL中SetTimer每定义一次定时器的周期,它只会执行一次相应的处理函数。所以要想连续的执行定时器处理函数,需要在定时器处理函数中再次调用SetTimer,如下图:
修改后运行CANOE,可以看到毫秒定时器每执行5次,秒级定时器执行1次。