主题中讨论的其他器件:HALCOGEN
大家好、
该程序调用 RTI 进行计时、将定时器设置为100ms、然后在中断函数中设置标志位、并在后台 while 循环中检测到标志位。 如果条件为 true、发送一个 CAN 数据。 在5到6个 CAN 帧之后、时间显著增加。
RTI 配置如下:


中断函数如下:
INT8U GL_SEND_FLAG = CODFALSE;
void rtiNotification(uint32 notification)
{
/* enter user code between the USER CODE BEGIN and USER CODE END. */
/* USER CODE BEGIN (9) */
GL_SEND_FLAG = CODTURE;
/* USER CODE END */
}
后台函数如下所示:
int main(void)
{
/* USER CODE BEGIN (3) */
canInit();
rtiInit();
rtiEnableNotification(rtiNOTIFICATION_COMPARE0);
rtiStartCounter(rtiCOUNTER_BLOCK0);
vimInit();
while(1) /* continious desplay */
{
if(CODTURE == GL_SEND_FLAG){
GL_SEND_FLAG = CODFALSE;
for(int i = 0; i < 8;++i)
rx_data[i] = i*0x05;
canTransmitWithDLC(canREG1, canMESSAGE_BOX1, rx_data,8);
}
};
/* USER CODE END */
}
通过 CAN 接收工具接收的数据如下所示、红框中的时间戳显著增加、大约为20ms:

您能帮助检查这个问题吗? 谢谢。
此致、
切里







