[an error occurred while processing this directive]
uC/OS-II. Не работает семафор?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Tolik 09 февраля 2006 г. 10:46

Создал семафор:
OS_EVENT * DispSem;
DispSem = OSSemCreate(1);
Пытаюсь использовать его взадаче:
...
OSSemPend(DispSem, 0, &err);
GUI_RotatePolygon(sRArrow,sArrow,countof(sArrow),-PI/2/3/5*j);
GUI_RotatePolygon(mRArrow,mArrow,countof(mArrow),-PI/2/3/5/60*j);
GUI_RotatePolygon(hRArrow,hArrow,countof(hArrow),-PI/2/3/5/60/12*j);
GUI_FillPolygon(hRArrow,countof(hArrow),160,120);
GUI_FillPolygon(mRArrow,countof(mArrow),160,120);
GUI_FillPolygon(sRArrow,countof(sArrow),160,120);
err = OSSemPost(DispSem);
При пошаговой отладке вижу, что семафор создан успешно и проинициализирован единицей. OSSemPend() выполняется - единица превращается в ноль. Дальше выполняются 3 функции и система вываливается в OS_TaskIdle() и больше не заходит в прерванную задачу. При этом семафор остается в состоянии 0. Без семафора все функции работают успешно. Где искать причину?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru