Разбивал все хозяйство, все на задачи и службы. Задачи выполнялись внутри прерывания таймера по очереди, т.е. кооперативная ОС. Службы выполнялись внутри мейн. Т.е. достигалась хорошая структурированность и занимала мало ресурсов... Например мигание светодиодом скажем раз в 1с или управление 7-ми сегментным индикатором было как задача. А обработка протоколов по УАРТ или по И2С находилось внутри служб.