Цитата(_Артём_ @ Sep 17 2012, 14:48)

Как вы себе это представляете? Пример не приведёте?
Простейший. Пусть у нас никакие не protothreads, а просто последовательность функций в теле цикла.
Понятное дело, в каждой ф-ции проверяются условия, если они не выполняются, то выходим из пп. А вот если не выходим...тогда у нас и увеличивается потребление сабжевого ресурса, растет загрузка.
Ставим нашу idle() в любое место списка.
При входе читаем таймер.
Код
float resource_usage;
void idle(void)
{
static tick_t mem_tick, sum_tick;
tick_t tmr = get_tick(); // читаем текущий систаймер
tick_t wrk = tmr - mem_tick;
if(wrk >= INTERVAL_REP)
{
mem_tick = get_tick();
resource_usage = 1 - sum_tick/wrk;//updated
sum_tick = 0;
}
sum_tick += tick_diff(tmr); // tick_diff = get_tick()-tmr
return;
}
Вроде, ничего не ошибся.

Не, ошибся. Упдатед.
Сообщение отредактировал _Pasha - Sep 17 2012, 12:15