Pump Timer

sleep.h is one of the standard AVR GCC libraries that you already have.
http://www.nongnu.org/avr-libc/user-manual/modules.html

I just don't understand how debounce is supposed to act there if the button is not pushed.
It looks like it will stay and wait for a push which looks to me like it blocks the sleep until pushed.

Anyone? Do I have that wrong? This is Nick's code and I expect it's been thoroughly checked.