Доброго времени суток! Начал юзать 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 сек. Что же с процессом?! Аналогичная задачка с применением внешнего прерывания по-спаду к такому эффекту не приводит.
|