From 4d52fc3d3d339fea73c56628a6da20fae5ea87d4 Mon Sep 17 00:00:00 2001 From: Jieun <yjeka@ajou.ac.kr> Date: Sat, 15 Aug 2020 00:39:41 +0900 Subject: [PATCH] Add result --- 08_14_mutex/README.md | 55 +++++++++++++++++++++++++++----- 08_14_mutex/ledThreads/led_main | Bin 17044 -> 0 bytes 2 files changed, 47 insertions(+), 8 deletions(-) delete mode 100644 08_14_mutex/ledThreads/led_main diff --git a/08_14_mutex/README.md b/08_14_mutex/README.md index fd68e7d..0416655 100644 --- a/08_14_mutex/README.md +++ b/08_14_mutex/README.md @@ -69,15 +69,54 @@ cmake --build build/ --target clean ``` * 실행 예시 및 예상 - * ./led_main - 빨간색 LED만 1초 간격으로 10 on/off 반복 - * ./led_main 1 5 - 빨간색 LED만 1초 간격으로 10 on/off 반복 + 초록색 LED는 2초 간격으로 5회 on/off - * ./led_main 2 7 - 빨간색 LED만 1초 간격으로 10 on/off 반복 + 노란색 LED는 3초 간격으로 7회 on/off - * ./led_main 3 6 - 빨간색 LED만 1초 간격으로 10 on/off 반복 + 초록 LED는 2초 간격으로, 노란색 LED는 3초 간격으로 각각 6회 on/off + * ./led_main + 빨간색 LED만 1초 간격으로 10 on/off 반복 + * ./led_main 1 5 + 빨간색 LED만 1초 간격으로 10 on/off 반복 + 초록색 LED는 2초 간격으로 5회 on/off + * ./led_main 2 7 + 빨간색 LED만 1초 간격으로 10 on/off 반복 + 노란색 LED는 3초 간격으로 7회 on/off + * ./led_main 3 6 + 빨간색 LED만 1초 간격으로 10 on/off 반복 + 초록 LED는 2초 간격으로, 노란색 LED는 3초 간격으로 각각 6회 on/off * 실행 결과 + * ./build/led_main 2 7 + ```text + RED ON! + YELLOW ON! + RED OFF! + RED ON! + YELLOW OFF! + RED OFF! + RED ON! + RED OFF! + YELLOW ON! + RED ON! + RED OFF! + RED ON! + YELLOW OFF! + RED OFF! + RED ON! + RED OFF! + YELLOW ON! + RED ON! + RED OFF! + RED ON! + YELLOW OFF! + RED OFF! + RED ON! + RED OFF! + YELLOW ON! + RED ON! + RED OFF! + YELLOW OFF! + YELLOW ON! + YELLOW OFF! + YELLOW ON! + YELLOW OFF! + YELLOW ON! + YELLOW OFF! + ``` +  + * ./build/led_main 3 6 ```text YELLOW ON! diff --git a/08_14_mutex/ledThreads/led_main b/08_14_mutex/ledThreads/led_main deleted file mode 100644 index a33595168cd6a255657d4aefce298c7589060022..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17044 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 -- GitLab