diff --git a/cmake/toolchain.cmake b/cmake/toolchain.cmake index 48937ea..24ac005 100644 --- a/cmake/toolchain.cmake +++ b/cmake/toolchain.cmake @@ -94,12 +94,12 @@ set(TARGET_CFLAGS_HARDWARE "-mcpu=cortex-m23 -mfloat-abi=soft -mthumb -mthumb-in #set(CMAKE_C_FLAGS_DEBUG "-DDEBUG=0 -O0 -g") #set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG=0 -O0 -g") #set(CMAKE_ASM_FLAGS_DEBUG "-DDEBUG=0 -O0 -g") -set(CMAKE_C_FLAGS_DEBUG "-DDEBUG=0 -O2 -g") -set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG=0 -O2 -g") -set(CMAKE_ASM_FLAGS_DEBUG "-DDEBUG=0 -O2 -g") -#set(CMAKE_C_FLAGS_DEBUG "-DDEBUG=0 -Os -g") -#set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG=0 -Os -g") -#set(CMAKE_ASM_FLAGS_DEBUG "-DDEBUG=0 -Os -g") +#set(CMAKE_C_FLAGS_DEBUG "-DDEBUG=0 -O2 -g") +#set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG=0 -O2 -g") +#set(CMAKE_ASM_FLAGS_DEBUG "-DDEBUG=0 -O2 -g") +set(CMAKE_C_FLAGS_DEBUG "-DDEBUG=0 -Os -g") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG=0 -Os -g") +set(CMAKE_ASM_FLAGS_DEBUG "-DDEBUG=0 -Os -g") # RELEASE set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O3") # -flto diff --git a/inc/ultrasonic_analog.h b/inc/ultrasonic_analog.h index d59ac3b..8696a9b 100644 --- a/inc/ultrasonic_analog.h +++ b/inc/ultrasonic_analog.h @@ -37,7 +37,7 @@ void ultrasonic_echo_timer_config(void); void ultrasonic_config(void); -uint32_t ultrasonic_calc_distance(void); +uint16_t ultrasonic_calc_distance(void); #endif //ULTRASONIC_ANALOG_H diff --git a/src/gd32e23x_it.c b/src/gd32e23x_it.c index a966685..acc74b7 100644 --- a/src/gd32e23x_it.c +++ b/src/gd32e23x_it.c @@ -34,7 +34,7 @@ OF SUCH DAMAGE. #include "gd32e23x_it.h" -__IO uint32_t g_capture_value; +__IO uint16_t g_capture_value; /*! \brief this function handles NMI exception diff --git a/src/main.c b/src/main.c index 14e97f2..9a2fb7f 100644 --- a/src/main.c +++ b/src/main.c @@ -8,7 +8,7 @@ volatile uint8_t g_temperature_uint8[2] = {0}; -extern uint32_t g_capture_value; +extern uint16_t g_capture_value; uint16_t g_distance_uint16; /*! diff --git a/src/rs485_protocol.c b/src/rs485_protocol.c index b94265d..1a7d70a 100644 --- a/src/rs485_protocol.c +++ b/src/rs485_protocol.c @@ -122,22 +122,20 @@ void gd60914_tempture_report(void) { // } void ultrasonic_distance_report(void) { - static uint32_t distance_uint32 = 0; - static uint8_t package_header[3] = {0xB5, 0xF0, 0x04}; + static uint16_t distance_uint16 = 0; + static uint8_t package_header[3] = {0xB5, 0xF0, 0x02}; static uint8_t package_data[4] = {0}; - distance_uint32 = ultrasonic_calc_distance(); + distance_uint16 = ultrasonic_calc_distance(); - package_data[0] = (distance_uint32 >> 24) & 0xFF; - package_data[1] = (distance_uint32 >> 16) & 0xFF; - package_data[2] = (distance_uint32 >> 8) & 0xFF; - package_data[3] = distance_uint32 & 0xFF; + package_data[0] = (distance_uint16 >> 8) & 0xFF; + package_data[1] = distance_uint16 & 0xFF; uint8_t combined_data[7]; memcpy(combined_data, package_header, 3); - memcpy(combined_data + 3, package_data, 4); + memcpy(combined_data + 3, package_data, 2); printf("%c%c%c", package_header[0], package_header[1], package_header[2]); - printf("%c%c%c%c", package_data[0], package_data[1], package_data[2], package_data[3]); - printf("%c", calculate_crc(combined_data, 8)); + printf("%c%c", package_data[0], package_data[1]); + printf("%c", calculate_crc(combined_data, 6)); } diff --git a/src/ultrasonic_analog.c b/src/ultrasonic_analog.c index 70bd4af..10ef5b5 100644 --- a/src/ultrasonic_analog.c +++ b/src/ultrasonic_analog.c @@ -139,10 +139,10 @@ void ultrasonic_config(void) { ultrasonic_echo_timer_config(); } -uint32_t ultrasonic_calc_distance(void) { +uint16_t ultrasonic_calc_distance(void) { while (!ultrasonicMeasurementDone); // uint32_t us_value = timer_channel_capture_value_register_read(US_ECHO_TIMER, US_ECHO_CH); - uint32_t distance = (TIME_CORRECTION_US + g_capture_value) * 17; + uint16_t distance = (TIME_CORRECTION_US + g_capture_value) * 17; /* * (TIME_CORRECTION_US + us_value) * 340 m/s * -----------------------------------------