Wowwee Rovio 核心库 libNS 逆向工程
来自Jack's Lab
目录 |
1 mcu_send_cmd(p1, p2, p3, p4)
char mcu_cmd[] = { 0x55, 0x11, 0x4d, 0x4d, 0x00, 0x01, 0x00, 0x53, 0x48, 0x52, 0x54, 0x00, 0x01, 0x00, 0x01, p1, p2, p3, p4, 0x00, 0x00, 0xaa } 调用 mcuSendCommand() 或 mcuSendCommand_NoResponse() 将命令字通过写 mcu 的串口“通知”mcu 执行相应的动作 这两个函数定义在 Host/LibCamera/Src/MCU.c
2 send_drive_cmd(p1, p2)
mcu_send_cmd(p1, p2, 0, 0);
2.1 state_change_head_position(p1)
send_drive_cmd(0xc, p1)
参数 p1 取值:
0x00 head 放平
0xff head 抬到最高
3 send_wheel_cmd(p1, p2, p3, p4)
if(p2 <= 0) t2 = ((-p2) & 0xff) | 0x80; else t2 = p2 & 0xff; if(p3 <= 0) t3 = ((-p3) & 0xff) | 0x80; else t3 = p3 & 0xff; if(p4 <= 0) t4 = ((-p4) & 0xff) | 0x80; else t4 = p4 & 0xff; mcu_send_cmd(p1, t2, t3, t4);
3.1 send_wheel_speed_cmd(p1, p2, p3)
send_wheel_cmd(0x1b, p1, p2, p3);
3.2 send_wheel_pwm_cmd(p1, p2, p3)
send_wheel_cmd(0x17, p1, p2, p3);
4 update_encoders()
5 smc_go_home()