То есть если пропало питание, а потом появилось нужно:
1. Если параметр равен нулю - при подаче питания на контроллер (после пропадания) нужно перезагрузится, и начать программу с начала,
2. Если параметр равен от 1 до 30 секунд - при пропадании помнить программу и передавать данные по всем портам в течении указанного времени.


IMHO - нормальное решение. Как нужно в конкретной ситуации, так и можно выбрать.