From 3ee11fc2480d94cfdc7dd2e1065749a9d12260f2 Mon Sep 17 00:00:00 2001 From: Elliot Williams Date: Wed, 18 Dec 2019 21:31:22 +0100 Subject: [PATCH] fixed bug with signed/unsigned needed explicit cast in checksum verification --- Src/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Src/main.c b/Src/main.c index 7ae3098..369ed89 100644 --- a/Src/main.c +++ b/Src/main.c @@ -220,8 +220,8 @@ int main(void) { #endif #ifdef CONTROL_SERIAL_USART2 - if (command.start_of_frame == START_FRAME && command.checksum == - (command.start_of_frame ^ command.steer ^ command.speed)) { + if (command.start_of_frame == START_FRAME && + command.checksum ==(uint16_t)(START_FRAME ^ command.steer ^ command.speed)) { cmd1 = CLAMP((int16_t)command.steer, -1000, 1000); cmd2 = CLAMP((int16_t)command.speed, -1000, 1000); } else { // restart DMA to hopefully get back in sync