Цитата(altlogic @ Jan 29 2008, 23:49)

SIGNAL(SIG_OVERFLOW0)
{
OS_Timer_Tick_Set();
OS_Timer();
}
Откуда вызывается функция SIGNAL.
Чтобы получить 1000 мС необходимо задать срабатывание системного таймера с периодом 1 мС.
Например выбран таймер 0 и задана частота 8 МГц, а нам надо получить на выходе частоту 1000Гц. Выбираем коэффициент предделителя равным 64 и получаем
8000000/64 = 125000 -> 125000/1000 = 125 это значение которое всегда необходимо устанавливать в регистре TCNT0. В jacOS это реализовано при помощи макроса
#ifndef OS_Timer_Tick_Set
#define OS_Timer_Tick_Set() {TCNT0 -= OS_TMR_TICK;}
#endif
который, находится в файле prt_avr.h или prt_gavr.h (для WinAVR)
1) Настраиваем предделитель
TCCR0 = 0x03;
2) Прерывание по переполнению TIMSK |= (1 << TOIE0);
3) В файле jacnfg.h устанавливаем
#define OS_TMR_TICK 125 (см выше)
4) Устанавливаем обработчик прерываний
#pragma vector=TIMER0_OVF_vect
__interrupt void intr_timer0(void)
{
OS_Timer_Tick_Set();
OS_Timer();
}
Должно все случится.
Если нет, то внимательно читаем jacos.doc и проверяем все строки в jacnfg.h на соответствие выбранной вами библиотеки.
Не забываем, что для задержек необходимо выбирать библиотеки с поддержкой тайм аутов, а так же задачи определять как OST_TASK_T task1;