The result is 24bit and needs to be sign-extended to 32bit.
e.g.:
s32AcqCurr = (s32)B_ACQ_CURR1<<16 | (s32)B_ACQ_CURR0;
s32Current = S24SignExtend(AcqCurr); // sign extend and sum up
The following macros are used:
#define S24EXTENT (0xFF000000UL) //!< macro to extend negative s24 to s32
//#define S24SignExtend(s24) ((s24)&BIT(23))? (s24)+S24EXTENT : (s24)// works with OR and ADD
#define S24SignExtend(s24) ((s24)&BIT(23))? (s24)|S24EXTENT : (s24) //!< macro to sign extend s24 bit values to s32
The resolution of the B_ACQ_CURR is 0.1uV (if shunt selection is default = 100uOhm).
In this case if you use a 100uOhm shunt the resolution is one 1mA.
Regards,
iggi