Если в программе нужно вычислять множество всяких задержек, да и вообще логика достаточно сложная, лучше использовать конечные автоматы. Пример на ST есть здесь: http://robot-develop.org/archives/1440.