Other Parts Discussed in Thread: MSP430FG437
Hi , I want to use the code and schematic that TI offers to make a Pulse Oximetry by MSP430FG437.
Now I can see the visible red light on the sensor and see the right IR Heart signal.

But I have two questions now.
1. The value of "heart_rate_LSB" and " SaO2_LSB" is always 0X00 , which I think it would change every 2ms with IR heart signal.
TXBUF0 = 0x00; // Byte 1 - 0x00 (synchronization byte)
while (!(IFG1 & UTXIFG0));
TXBUF0 = 0xFF; // Byte 2 - 0xFF (synchronization byte)
while (!(IFG1 & UTXIFG0));
TXBUF0 = i; // Byte 3 - IR Heart signal (AC only)
while (!(IFG1 & UTXIFG0));
TXBUF0 = heart_rate_LSB; // Byte 4 - Heart rate data
while (!(IFG1 & UTXIFG0));
TXBUF0 = SaO2_LSB; // Byte 5 - %SaO2 data
2. If I include the "mul.s43" to implement " int32_t mul16(register int16_t x, register int16_t y);" , the signal would be different
when I use
long mul16(short x, short y)
{
return ((long)x) * y;
}
to define this function.However, the output signal of later one is right.
I want to know why and should I use the "mul.s43" to define " int32_t mul16"?
Hope for your reply for these two questions.
Best regards,
Steve.