реклама на сайте
подробности

 
 
> scmRTOS: Прерывание от UARTа, что-то не так...
Colobox
сообщение Jan 16 2008, 07:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-10-07
Пользователь №: 31 901



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



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 12:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01341 секунд с 7
ELECTRONIX ©2004-2016