三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

IGH-1.6.2-创龙RK3506-RT-----8-----my_master.c讲解【应用层PDO读写】

IGH-1.6.2-创龙RK3506-RT-----8-----my_master.c讲解【应用层PDO读写】

本文解决三个应用层问题:

第一,如何从 TxPDO 里读取 3 个 KEY。
第二,如何向 RxPDO 写入 5 个 LED。
第三,如何新增一个UINT8数据 PDO。

当前工程里的过程数据指针是domain_pd,它是应用层读写 PDO 的基础。LED 和 KEY 的字节偏移、bit 位置,都是前面注册 PDO entry 时由 IgH 填充的。

1.目前的PDO

0x7000的5led属于  RxPDO 0x1600

0x6000的3key属于 TxPDO  0x1A00

static ec_pdo_entry_info_t slave_pdo_entries[] = { {0x7000, 0x01, 1}, {0x7000, 0x02, 1}, {0x7000, 0x03, 1}, {0x7000, 0x04, 1}, {0x7000, 0x05, 1}, {0x0000, 0x00, 3}, {0x6000, 0x01, 1}, {0x6000, 0x02, 1}, {0x6000, 0x03, 1}, {0x0000, 0x00, 5}, };

2.BOOL 类型同时保存字节偏移和 bit 位置

LED 和 KEY 都是 BOOL 类型,每个只占 1bit。所以访问这类 PDO 时,不能只知道它在过程数据区的第几个字节,还要知道它在这个字节里的第几个 bit。

代码里为 LED 和 KEY 分别定义了

← 返回列表