I am using a EFM32GG990 microprocessor and I am trying to get it to read a voltage using it's on-board ADC. I have made a circuit that I wish it to measure, both the loaded and open circuit voltage for the battery and the readings I should be getting are around 2.5-3V or somewhere around there, but when I actually set the chip up with the circuit it reads the voltage to be around 1.6V open-circuit and 0.9V loaded which is well of the mark.
I am not entirely sure whether it is a software problem or a hardware problem but I have assumed hardware for now as when measured with a volt meter aswell while it is set up, it also reads a much lower voltage than expected.
simulate this circuit – Schematic created using CircuitLab
This is the circuit diagram of what I am doing and as you can see there a three different loads, one is always on and the other two are triggered intermittently depending on whatever I choose it to be. I personally can't see any issues with this but if anyone does and could help me out, that would be great!
EDIT: Something interesting is that it all works with use of a power supply instead of a CR123A battery...