// Define EEPROM address indexing for coordinate parameters
#define N_COORDINATE_SYSTEM 6 // Number of supported work coordinate systems (from index 1)
#define SETTING_INDEX_NCOORD N_COORDINATE_SYSTEM+1 // Total number of system stored (from index 0)
// NOTE: Work coordinate indices are (0=G54, 1=G55, ... , 6=G59)
#define SETTING_INDEX_G28 N_COORDINATE_SYSTEM // Home position 1
#define SETTING_INDEX_G30 N_COORDINATE_SYSTEM+1 // Home position 2
也在报道中。C
case 6: printPgmString(PSTR("28")); break;
case 7: printPgmString(PSTR("30")); break;
嗨,
支持的工作坐标系数量(从索引 1 开始)定义为 6,很好。
但是为什么 SETTING_INDEX_NCOORD(来自索引 0)定义为多一而不是少一?
使用它的地方似乎表明它应该 5:
settings.c:120: for (idx=0; idx <= SETTING_INDEX_NCOORD; idx++)
这是错字还是存储了另外两个坐标系:?
此定义的注释似乎也不正确:“存储的系统总数(从索引 0 开始)”
如果它是基于零的索引,则它不是“…的总数”。正如经常发生的那样,这些冗长但不透明的宏几乎没有帮助,并且增加了更多的混乱而不是代码的清晰度。
像下面这样的东西会更清楚:
也在报道中。C
为了保持一致,这些行应该使用定义的宏 SETTING_INDEX_G28 、 SETTING_INDEX_G28 。显然这不会改变二进制文件。