多摩川协议有9条命令,但是先辑SEI的命令表只有8张。0-6是可用的,第7张是黑洞表,所以只有7张可用。
命令表的限制颇多,比如命令表只能按顺序使用 :例如0、1、3,那么命令表3是不能用的。
如果想要实现9个命令都可用,需要考虑复用命令表。查表得知ID78C返回的数据是一样的,所以这三个命令可以复用。
修改代码:
command_table_config.cmd_min_value = 0x62u ;
command_table_config.cmd_max_value =0x1DEu;
command_table_config.cmd_mask_value = 0xFFu;
command_table_config.instr_idx[0] = 2;
command_table_config.instr_idx[1] = 05;
sei_cmd_table_config_init(BOARD_SEI, BOARD_SEI_CTRL, SEI_CMD_TABLE_6, &command_table_config);
也就是将0x62、0xBA、0xC2相加放入限制范围 ,设置cmd_max_value =0x1DEu,然后再把中断函数里的命令值做下判断并进行相应的设置即可:
if(sei_get_command_value(BOARD_SEI, BOARD_SEI_CTRL) == 0xC2u)
{
//零点设置函数
}
if(sei_get_command_value(BOARD_SEI, BOARD_SEI_CTRL) == 0x62u)
{
//多圈复位函数
}
if(sei_get_command_value(BOARD_SEI, BOARD_SEI_CTRL) == 0xBAu)
{
//错误清除函数
}
完美解决!