Доброго времени суток!
Начал юзать scmRTOS v.3, написал простенькую тест-прогу с применением UART-прерывания:
....
#define scmRTOS_ISRW_TYPE TISRW_SS
...
#define scmRTOS_CONTEXT_SWITCH_SCHEME 0
...
#define OS_INTERRUPT __interrupt __raw
...
OS_PROCESS void TProc1::Exec()//sys tick=6 ms
{
for(;;)
{
LED1=1;//горит
Sleep(60);
LED1=0;//не горит
Sleep(60);
}
}
...
#pragma vector = USART_RXC_vect
OS_INTERRUPT void RX(void)
{
//
OS::scmRTOS_ISRW_TYPE ISR;
U_Rx();
}
//-------------------------------------------------------------------------
void U_Rx(void)
{
LED2=1;
}
...
Так вот в чем проблема: запуск, светодиод 1 мигает с периодом менее 1 сек.- типа процесс 1 работает. При посылке байта в УАРТ светодиод 2 честно загорается, но! период миганий первого светодиода становится уже не менее 6 сек. Что же с процессом?! Аналогичная задачка с применением внешнего прерывания по-спаду к такому эффекту не приводит.