Beginning 0 11 июня, 2012 Опубликовано 11 июня, 2012 · Жалоба У меня получается что я cоздаю семафор и сразу же мне его надо сбрасывать. Какой сокраментальный смысл в взведении семафора при создании? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 12 июня, 2012 Опубликовано 12 июня, 2012 (изменено) · Жалоба Понимать это можно так: семафор создается в свободном для захвата (...take) состоянии. Основная цель семафоров это управление доступа к ресурсам. На примере SPI порта: функция передачи захватывает семафор, по выходу - освобождает. Соответственно создаваться семафор должен свободным. Изменено 12 июня, 2012 пользователем kan35 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 67 12 июня, 2012 Опубликовано 12 июня, 2012 · Жалоба У меня получается что я cоздаю семафор и сразу же мне его надо сбрасывать. Бывают нужны и те и другие. Сделайте свой макрос, который создает не взведенный семафор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ur5cuj 0 12 июня, 2012 Опубликовано 12 июня, 2012 · Жалоба Бывают нужны и те и другие. Сделайте свой макрос, который создает не взведенный семафор. Вот: #define vSemaphoreCreateBinaryDisabled( xSemaphore ) \ ( xSemaphore ) = xQueueGenericCreate( ( unsigned portBASE_TYPE ) 1, \ semSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_BINARY_SEMAPHORE ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться