Content originally posted in LPCWare by Polux rsv on Wed Jun 27 01:20:09 MST 2012
For such long delays, it is better to implement a "software timer", which use a HW timer or the Systick timer as a main timebase. The HW timer will trigger an interrupt every 10 or 100 ms, depending of the needed resolution.
The interrupt routine will implement the software timer which could count in various ways: seconds only, minutes only, minutes and seconds, etc...
You could implement multiple software timers, based on a single HW resource. And on top of that, you could implement high level functions like "execute this in x minutes y seconds", "execute this every x minutes", "execute this for x minutes", ......
Angelo