文章
Timestamped TX
refer to NTCAN Application Developers Manual document charpter
- 3.9 Timestamps
- 3.14 Timestamped TX
- 6.2.4 CMSG_T
- 4.4.2 canSendT()
- 8.5 Timestamped TX messages (Classical CAN)
example code
timestamped_tx.c:程序展示如何利用Timestamped TX功能,以相同间隔时间,非常精准地发送CAN消息。
CMSG_T msgT[10];
rc = canOpen(0, NTCAN_MODE_TIMESTAMPED_TX, 100, 100, 1000, 1000, &m_hCan);
for (i = 0; i < len; i++) {
msgT[i].id = (int32_t)(can_id + i);
msgT[i].len = NTCAN_DATASIZE_TO_DLC(8);
msgT[i].timestamp = timestamp;
strcpy((char *)msgT[i].data, "Hello !!");
timestamp += timestampFreq / 10; /* Next transmission in 100 ms */
}
rc = canSendT(m_hCan, msgT, &len);
执行过程
参照Demo System建立CAN总线,编译运行此程序向总线精准发送CAN消息,同时使用CANreal工具接收此程序发送的消息。参加下图,总共发送10条CAN消息,每条消息之间的间隔都几乎控制在100毫秒,抖动非常小。