Beginning 0 Posted June 11, 2012 · Report post У меня получается что я cоздаю семафор и сразу же мне его надо сбрасывать. Какой сокраментальный смысл в взведении семафора при создании? Quote Ответить с цитированием Share this post Link to post Share on other sites
kan35 0 Posted June 12, 2012 (edited) · Report post Понимать это можно так: семафор создается в свободном для захвата (...take) состоянии. Основная цель семафоров это управление доступа к ресурсам. На примере SPI порта: функция передачи захватывает семафор, по выходу - освобождает. Соответственно создаваться семафор должен свободным. Edited June 12, 2012 by kan35 Quote Ответить с цитированием Share this post Link to post Share on other sites
aaarrr 0 Posted June 12, 2012 · Report post У меня получается что я cоздаю семафор и сразу же мне его надо сбрасывать. Бывают нужны и те и другие. Сделайте свой макрос, который создает не взведенный семафор. Quote Ответить с цитированием Share this post Link to post Share on other sites
ur5cuj 0 Posted June 12, 2012 · Report post Бывают нужны и те и другие. Сделайте свой макрос, который создает не взведенный семафор. Вот: #define vSemaphoreCreateBinaryDisabled( xSemaphore ) \ ( xSemaphore ) = xQueueGenericCreate( ( unsigned portBASE_TYPE ) 1, \ semSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_BINARY_SEMAPHORE ) Quote Ответить с цитированием Share this post Link to post Share on other sites