101
КОМПОНЕНТЫ И ТЕХНОЛОГИИ •
№ 9 '2011
www.kite.ru
компоненты
микроконтроллеры
Внутренняя реализация сопрограмм не до-
пускает вызова блокирующих API-функций
внутри выражения
switch. Рассмотрим пример:
// Функция, реализующая сопрограмму
void vACoRoutineFunction( xCoRoutineHandle xHandle, unsigned
portBASE_TYPE uxIndex )
{
crSTART( xHandle );
for(;; )
{
// Непосредственно в сопрограмме
// блокирующие API-функции вызывать можно.
crDELAY( xHandle, 10 );
switch( aVariable )
{
case 1 : // Здесь нельзя вызывать блокирующие API-функции.
break;
default: // Здесь тоже нельзя.
}
}
crEND();
}
Достарыңызбен бөлісу: