diff --git a/src/stm32_src_mtn.cpp b/src/stm32_src_mtn.cpp index 250ff632a711a1adbd99ff7c6c66c48fdb01dfcb..ba7ac4317df9007b71890c96a11e88ed60865d30 100644 --- a/src/stm32_src_mtn.cpp +++ b/src/stm32_src_mtn.cpp @@ -1,6 +1,7 @@ #include "robotis_bin_parser.h" #include "stm32_src_mtn.h" #include <string.h> +#include <math.h> #include <iomanip> CSTM32SrcMtn::CSTM32SrcMtn() @@ -86,7 +87,7 @@ unsigned char CSTM32SrcMtn::compute_checksum(int page_id) checksum+=(unsigned char)page.get_repetitions(); checksum+=0x0A; checksum+=(unsigned char)page.get_num_steps(); - checksum+=(unsigned char)(page.get_speed_rate()*32); + checksum+=(unsigned char)((1.0/page.get_speed_rate())*32); checksum+=(unsigned char)page.get_inertial(); checksum+=(unsigned char)page.get_next_page(); checksum+=(unsigned char)page.get_exit_page(); @@ -152,7 +153,7 @@ void CSTM32SrcMtn::generate_src_file(const std::string &filename) this->write_byte_vector(file,std::vector<unsigned char>(3,0),3); this->write_byte_vector(file,std::vector<unsigned char>(1,page.get_num_steps()),3); this->write_byte_vector(file,std::vector<unsigned char>(1,0),3); - this->write_byte_vector(file,std::vector<unsigned char>(1,(1.0/page.get_speed_rate())*32),3); + this->write_byte_vector(file,std::vector<unsigned char>(1,((1.0/page.get_speed_rate())*32)),3); this->write_byte_vector(file,std::vector<unsigned char>(1,0),3); this->write_byte_vector(file,std::vector<unsigned char>(1,page.get_inertial()),3); this->write_byte_vector(file,std::vector<unsigned char>(1,page.get_next_page()),3);