Спасибо Палыч.
Цитата(Палыч @ Jan 28 2012, 14:49)

Используйте прероцессор (#if #else #elif #endif). В условии можно применить предопределенный макрос __SECOND__. Например, если число секунд меньше 30, то один участок, больше - другой; в другом месте - например, условие: число секунд <10, в третьем -... и т.д.
Надо попробывать.
Цитата(Палыч @ Jan 28 2012, 14:49)

Если свободной памяти много, можно "разбавить" программу "бесполезными" кусками кода разной длины от какого-либо условия, приведенного выше, но, выглядящими вполне "осмысленно" (оформить процедурами, вызовы/переходы между этими кусками...). Естественно, вставлять эти куски не абы куда, а между "нормальными" процедурами. Если вставки будут иметь разную длину от условия, то и "полезные" куски кода будут размещаться в разных прошивках по разным адресам.
Морочливо, но можно.
Цитата(Палыч @ Jan 28 2012, 14:49)

Можно ещё и "полезные" куски кода написать в двух-трёх вариантах (например, обращение к регистрам устройств можно сделать через OUT/IN, а можно - через LD/ST и др.варианты, выполняющие одно и то же действия, но другими командами - в конце-концов: переставить пару команд местами, если это не "повредит" программе...). Разные варианты "полезного" кода - тоже "чередовать" в зависимости от условия в условном операторе пропроцессора.
Имхо, так сделать - можно, но, не запутаетесь ли Вы при правке (доработке) программы? Не усложните ли Вы жизнь только себе?
Даа... с таким текстом о доработках можно забыть навсегда.
Конечно же речь идёт о законченом и отлаженном проекте.
Желательно незначительное изменение текста программы с обязательным сохранением читабельности (для разработчика).