在f2838x_cm_cia402_solution例程的CiA402_Init函数中
DefCiA402ObjectValues、DefCiA402AxisObjDic在cia402appl.h的定义中,为什么都是跳过编译的呢?
DefCiA402AxisObjDic的定义:
DefCiA402AxisObjDic的定义:
这个工程是CiA402,如果按照这里情况看,是没有定义“_CiA402_”的,这又是为什么呢?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在f2838x_cm_cia402_solution例程的CiA402_Init函数中
DefCiA402ObjectValues、DefCiA402AxisObjDic在cia402appl.h的定义中,为什么都是跳过编译的呢?
DefCiA402AxisObjDic的定义:
DefCiA402AxisObjDic的定义:
这个工程是CiA402,如果按照这里情况看,是没有定义“_CiA402_”的,这又是为什么呢?
您好,包含"cia402appl.h"在内的从机文件是使用Beckhoff开发的SSC Tool生成的。相关定义未被包含的原因最好向Beckhoff寻求解释:
ETG(EtherCAT Technology Group) Forum - https://www.ethercat.org/memberarea/en/forum.htm
您好 感谢帮助 我知道是为什么了
DefCiA402ObjectValues的定义,是在cia402appl.h文件中
在cia402appl.c文件引用cia402appl.h文件时,是这样引用的
在引用cia402appl.h文件前,定义了“_CiA402_”
所以cia402appl.h中的DefCiA402ObjectValues、ApplicationObjDic、DefCiA402AxisObjDic这三个与_CiA402_编译条件相关的三个亮会被正常定义
至于灰显,应该是因为引用完cia402appl.h这个头文件后,将“_CiA402_”取消定义了,如56行代码。
我本来是以为未编译无法赋值,今天连上板卡调试了一下,发现这些都是有正常定义的。
请问这样处理的原因是什么呢?是为了避免定义“_CiA402_”可能导致的其他问题吗?
是的。您看一下这个链接中的第2部分:
这是EtherCAT官网论坛的一个帖子 也有人提出同样的问题 估计也是初次接触EtherCAT的人