From de8e1cb6bda517b22e52d2ab3784977a8109a723 Mon Sep 17 00:00:00 2001 From: rlacroix Date: Fri, 25 Nov 2022 19:42:34 +0100 Subject: [PATCH] frame char unpacking done --- FileInclude/Time.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/FileInclude/Time.c b/FileInclude/Time.c index 3d61d55..5dd2d3a 100644 --- a/FileInclude/Time.c +++ b/FileInclude/Time.c @@ -14,13 +14,14 @@ char* Get_Time(){ RData->Nb_Data = 7; MyI2C_GetString(I2C1, 0x0, RData); - varTime.year = input[6]; - varTime.month = input[5]; - varTime.day = input[4]; + // mask w/ 0x0F ==> lower 4 bits + varTime.second = (input[0] & 0x0F) + 10*((input[0]>>4)&0x07); // shift >>4 + mask w/ 0x7 ==> upper 3 bits but one + varTime.minute = (input[1] & 0x0F) + 10*(input[1]>>4); + varTime.hour = (input[2] & 0x0F) + 10*((input[2]>>4)&0x3); // shift >>4 + mask w/ 0x7 ==> upper 2 bits but two varTime.weekday = input[3]; - varTime.hour = input[2]; - varTime.minute = input[1]; - varTime.second = input[0]; + varTime.day = (input[4] & 0x0F) + 10*(input[4]>>4); + varTime.month = (input[5] & 0x0F) + 10*(input[5]>>4); + varTime.year = (input[6] & 0x0F) + 10*(input[6]>>4); - return("coucou"); + return(varTime); }