文章目录
- 一、前言
- 二、实验目的
- 三、对象字典OD
- 四、TPDO1数据变化发送,滤波时间200ms
- 4.1、main.c
- 4.2、让CANopen从站进入操作状态
- 4.3、TPDO1的CAN数据包
一、前言
该笔记的程序:github
二、实验目的
CANopen从站有一个变量tx_Value,映射到TPDO1上。接着,当变量tx_Value发生变化时,通过TPDO1发送出去,滤波时间为200ms。
三、对象字典OD
跟上一章节一样,创建一个变量tx_Value。
通过变量tx_Value映射到TPDO1上。
Transmission Type必须设置0xFF,然后Inhibit Time设置2000,单位0.1ms的话,相当于滤波200ms。如下图所示:
最后,保存,将对象字典生成c代码。
四、TPDO1数据变化发送,滤波时间200ms
4.1、main.c
如上图所示,相当于产生一个数据变化的事件。
按照程序的意思,变量tx_Value每10ms累加1。相当于这个数值(事件)每10ms变化一次。
在Watch窗口下,确实能看到tx_Value一直在变化。
4.2、让CANopen从站进入操作状态
4.3、TPDO1的CAN数据包
如上图所示,TPDO1的发送间隔是200ms,等于滤波时间。
虽然变量tx_Value每10ms变化一次,又因为滤波时间为200ms,所以TPDO1最终是200ms发送一次出来。