I have a program that consumes a lot of battery and I need to reduce the power usuage.
There is a normal fast scan and a slow scan running. Based on the battery usuage I assume the logger processor is active most of the time.
The slowscan can take very long, and I'm getting skipped slowscans. Timing from status table:
MeasureTime 0.0001 seconds
ProcessTime 0.69 seconds
MaxProcTime 0.695 seconds
SlowProcTime 0.051 seconds
MaxSlowProcTime 489 seconds
Is there a way to see processor usage of the program?
Any general tips for troubleshooting power usuage, for example:
- making sure logger goes to sleep mode (is the slow scan/RS232 keeping it awake?
- making sure RS232 does not draw current appart from when active
- making sure all uncessary functions are disabled when neeed (e.g. PPP)
My power budget calculation, which is quite conservative I think:
CR300 20 mA 1 second every 15 seconsd
CR300 1.5 mA 100% of the time
Modem (COM111) drawing 250 mA for 10 minutes every 6 hours (modem + extra current draw from logger)
Gives an average current of 9.8 mA, or approx 120 mW on 12V. A 18 Ah battery should then last approx 75 days.
I was getting 40 days on a new and good 18 Ah battery. In reality I expect the modem to draw less current, and the active scan time is not a full second, so should be more than 75 days.
Furthermore, I would also like to reduce memory usuage as I'm hitting out of memory limits. Is there a way to analyse the memory usuage of different variables/see what part of the program is using the most memory?
The program code is posted here:
Thanks a lot!