1
main.cpp
- Committer:
- WXD
- Date:
- 2019-10-08
- Revision:
- 5:6a95726e45b0
- Parent:
- 3:9ef9b4c66648
- Child:
- 6:aad89fd109c2
File content as of revision 5:6a95726e45b0:
#include "mbed.h" #include <cstring> #include "math_ops.h" #include "leg_message.h" #include "CAN.h" #include "used_leg_message.h" #include "data_command.h" #include "data_pc.h" #include "data_board.h" #include "mode.h" #include "control.h" #include "calculate.h" int main() { pc.baud(115200); command.baud(115200); command.attach(&serial_command_isr); sf_m_c = 0; // 主要为接收模式 board.baud(115200); board.attach(&serial_board_isr); sf_m_b = 1; // 主要为发送模式 pf_can.frequency(1000000); pf_can.filter(CAN_ID<<21, 0xFFE00004, CANStandard, 0); pf_rxMsg.len = 6; PF_can.len = 8; PF_can.id = 0x0a; df_can.frequency(1000000); df_can.filter(CAN_ID<<21, 0xFFE00004, CANStandard, 0); df_rxMsg.len = 6; DF_can.len = 8; DF_can.id = 0x0b; NVIC_SetPriority(USART1_IRQn, 3); // pc中断优先级高于board NVIC_SetPriority(USART2_IRQn, 4); while(1) { counter++; //////////////////////// CAN获取电机位置速度信息 ////////////////////////// pf_can.read(pf_rxMsg); unpack_reply(pf_rxMsg, &a_state); wait_us(10); df_can.read(df_rxMsg); unpack_reply(df_rxMsg, &a_state); /**********************************************************************/ /////////////////////// 485获取步态,力传感器信息 ////////////////////////// sf_m_b = 1; // 发送模式 wait_us(200); // 等待选择引脚电压稳定 board.printf("A1B"); wait_ms(1); // mbed特色,需要等待数据完全发送 sf_m_b = 0; // 接收模式 wait_us(200); // 等待选择引脚电压稳定 wait_ms(3); // 等待从机上传数据 gait_decode(); //pc.printf("A1B: %d - %d - %f - %f - %f\n\r", Gait_num_valid, Gait_now, Gait_per_now, COP_Y, COP_X); gait_clear(); sf_m_b = 1; // 发送模式 wait_us(200); // 等待选择引脚电压稳定 board.printf("A2B"); wait_ms(1); // mbed特色,需要等待数据完全发送 sf_m_b = 0; // 接收模式 wait_us(200); // 等待选择引脚电压稳定 wait_ms(4); // 等待从机上传数据 ad_decode(); //pc.printf("A2B: %f - %f\n\r", ad_pf, ad_df); ad_clear(); /**********************************************************************/ ////////////////////////// 电机状态控制,命令发送 ////////////////////////// control(); if(send_enable == 1) { PackAll(); WriteAll(); } /**********************************************************************/ ////////////////////////////// 输出状态信息 ////////////////////////////// /* if(counter >= 20000) { //pc.printf("\n\rpf- %.3f %.3f %.3f \n\r", a_state.pf.p, a_state.pf.v, a_state.pf.t); //pc.printf("df- %.3f %.3f %.3f \n\r", a_state.df.p, a_state.df.v, a_state.df.t); counter = 0; } */ //pc.printf("\n\rPpd: %f - %f\r", SP_pf, SP_df); //pc.printf("\n\rPpd: %f - %f\r", a_state.pf.p, a_state.df.p); pc.printf("A1B: %d - %d - %f - %f - %f\r", Gait_num_valid_real, Gait_now_real, Gait_per_now_real, COP_Y_real, COP_X_real); //pc.printf("A2B: %f - %f\n\r", ad_pf_real, ad_df_real); /**********************************************************************/ } }