The core approach for this regulator is that we stay in Acceptance Phase until the battery is full. And we decide the battery is full my measuring its acceptance amps. When the battery is full, it says 'Enough' and we move onto float.
But what if the user has some reason to not want to do that? What if they don;t want to hook up the Amp shunt, or perhaps want to use the Amp Shunt only for a different reason - and they WANT to use only time-based criteria for deciding when to leave Acceptance more.
It is What If';s such as this I have been working through, to see how the regulator will react. If the user had configured the regulator to use only time to exit Accept mode (by setting 'Exit_acpt_amps' in the CPE = 0), then only time would be used. The 'Exit_acpt_time' duration. Tonight I added a 2nd option. Setting the Exit_acpt_amps = -1 will now cause the regulator to move from Acceptance phase either by exceeding Exit_acpt_time duration, -or- by exceeding 5x the amount of time we were in Bulk. This way of the battery is basically charged when we start up the regulator we will be in Bulk for a very short time, and now we will be in Acceptance for a like very short time.
The 5x is set in the code by
#define ADPT_ACPT_TIME_FACTOR 5
This new Adaptive Acceptance Time Mode will also be triggered if the regulator is unable to measure amps via its shunt - either because something broke, or because the user did not wire it up. In either case, by having an adaptive time frame the battery gets a bit more protection when we are unable to actually measures its appetite.
Over the next week or so I intend to work through other such 'non-preferred' scenarios and will be modifying the code accordingly.