From 074231d76fe21173c0c945c81ae8f235c8059d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9E=A5=EC=9B=90?= <wkddnjs3268@ajou.ac.kr> Date: Sat, 15 Aug 2020 23:53:03 +0900 Subject: [PATCH] led --- 0814/led.h | 7 ++++ 0814/led_blue.c | 21 ++++++++++ 0814/led_main | Bin 0 -> 13032 bytes 0814/led_main.c | 87 ++++++++++++++++++++++++++++++++++++++++++ 0814/led_main.txt | 24 ++++++++++++ 0814/led_main_1_5.txt | 37 ++++++++++++++++++ 0814/led_main_2_3.txt | 33 ++++++++++++++++ 0814/led_main_3_3.txt | 42 ++++++++++++++++++++ 0814/led_orange.c | 21 ++++++++++ 9 files changed, 272 insertions(+) create mode 100644 0814/led.h create mode 100644 0814/led_blue.c create mode 100755 0814/led_main create mode 100644 0814/led_main.c create mode 100644 0814/led_main.txt create mode 100644 0814/led_main_1_5.txt create mode 100644 0814/led_main_2_3.txt create mode 100644 0814/led_main_3_3.txt create mode 100644 0814/led_orange.c diff --git a/0814/led.h b/0814/led.h new file mode 100644 index 0000000..4ff400b --- /dev/null +++ b/0814/led.h @@ -0,0 +1,7 @@ +#include <stdio.h> +#include <stdlib.h> +#include <wiringPi.h> +#include <pthread.h> + +extern void *led_blue_task(void *); +extern void *led_orange_task(void *); diff --git a/0814/led_blue.c b/0814/led_blue.c new file mode 100644 index 0000000..1500f96 --- /dev/null +++ b/0814/led_blue.c @@ -0,0 +1,21 @@ +#include "led.h" + +void *led_blue_task(void *arg) +{ + printf("led blue task start\n"); + int i, count = 0; + pinMode(4, OUTPUT); + + for (i = 0; i < (int)arg; i++, count++) + { + digitalWrite(4, HIGH); + printf("blue ON\n"); + delay(2000); + digitalWrite(4, LOW); + printf("blue OFF\n"); + delay(2000); + } + + printf("led blue task end\n"); + pthread_exit((void *)count); +} diff --git a/0814/led_main b/0814/led_main new file mode 100755 index 0000000000000000000000000000000000000000..225a6c3db96572c63eb7c85a7111c0991d5342b8 GIT binary patch literal 13032 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 literal 0 HcmV?d00001 diff --git a/0814/led_main.c b/0814/led_main.c new file mode 100644 index 0000000..ef1f747 --- /dev/null +++ b/0814/led_main.c @@ -0,0 +1,87 @@ +#include "led.h" + +void *led_main_task(); + +int main(int argc, char *argv[]) +{ + int i, task_mode = 0, task_repeat; + pthread_t red, blue, orange; + void *main_result = NULL, *blue_result = NULL, *orange_result = NULL; + + if(argc != 1 && argc != 3) + { + printf("Usage : %s GPIO_NO\n", argv[0]); + exit(1); + } + if (argc == 3) + { + task_mode = atoi(argv[1]); + task_repeat = atoi(argv[2]); + } + for (i = 0; argv[i]; i++) + { + printf("%s ", argv[i]); + } + printf("\n"); + + wiringPiSetup(); + + if (task_mode == 0) + { + pthread_create(&red, NULL, led_main_task, NULL); + pthread_join(red, &main_result); + printf("led red blinked %d times\n", (int)main_result); + } + else if (task_mode == 1) + { + pthread_create(&red, NULL, led_main_task, NULL); + pthread_create(&blue, NULL, led_blue_task, (void *)task_repeat); + pthread_join(red, &main_result); + printf("led red blinked %d times\n", (int)main_result); + pthread_join(blue, &blue_result); + printf("led blue blinked %d times\n", (int)blue_result); + } + else if (task_mode == 2) + { + pthread_create(&red, NULL, led_main_task, NULL); + pthread_create(&orange, NULL, led_orange_task, (void *)task_repeat); + pthread_join(red, &main_result); + printf("led red blinked %d times\n", (int)main_result); + pthread_join(orange, &orange_result); + printf("led orange blinked %d times\n", (int)orange_result); + } + else if (task_mode == 3) + { + pthread_create(&red, NULL, led_main_task, NULL); + pthread_create(&blue, NULL, led_blue_task, (void *)task_repeat); + pthread_create(&orange, NULL, led_orange_task, (void *)task_repeat); + pthread_join(red, &main_result); + printf("led red blinked %d times\n", (int)main_result); + pthread_join(blue, &blue_result); + printf("led blue blinked %d times\n", (int)blue_result); + pthread_join(orange, &orange_result); + printf("led orange blinked %d times\n", (int)orange_result); + } + + return 0; +} + +void *led_main_task() +{ + printf("led main task start\n"); + int i, count = 0; + pinMode(1, OUTPUT); + + for (i = 0; i < 10; i++, count++) + { + digitalWrite(1, HIGH); + printf("red ON\n"); + delay(1000); + digitalWrite(1, LOW); + printf("red OFF\n"); + delay(1000); + } + + printf("led main task end\n"); + pthread_exit((void *)count); +} diff --git a/0814/led_main.txt b/0814/led_main.txt new file mode 100644 index 0000000..1b414cb --- /dev/null +++ b/0814/led_main.txt @@ -0,0 +1,24 @@ +./led_main +led main task start +red ON +red OFF +red ON +red OFF +red ON +red OFF +red ON +red OFF +red ON +red OFF +red ON +red OFF +red ON +red OFF +red ON +red OFF +red ON +red OFF +red ON +red OFF +led main task end +led red blinked 10 times diff --git a/0814/led_main_1_5.txt b/0814/led_main_1_5.txt new file mode 100644 index 0000000..4fb519c --- /dev/null +++ b/0814/led_main_1_5.txt @@ -0,0 +1,37 @@ +./led_main 1 5 +led main task start +red ON +led blue task start +blue ON +red OFF +blue OFF +red ON +red OFF +blue ON +red ON +red OFF +blue OFF +red ON +red OFF +blue ON +red ON +red OFF +blue OFF +red ON +red OFF +blue ON +red ON +red OFF +blue OFF +red ON +red OFF +blue ON +red ON +red OFF +blue OFF +red ON +red OFF +led blue task end +led main task end +led red blinked 10 times +led blue blinked 5 times diff --git a/0814/led_main_2_3.txt b/0814/led_main_2_3.txt new file mode 100644 index 0000000..afdc475 --- /dev/null +++ b/0814/led_main_2_3.txt @@ -0,0 +1,33 @@ +./led_main 2 3 +led main task start +red ON +led orange task start +orange ON +red OFF +red ON +orange OFF +red OFF +red ON +red OFF +orange ON +red ON +red OFF +red ON +orange OFF +red OFF +red ON +red OFF +orange ON +red ON +red OFF +red ON +orange OFF +red OFF +red ON +red OFF +led orange task end +red ON +red OFF +led main task end +led red blinked 10 times +led orange blinked 3 times diff --git a/0814/led_main_3_3.txt b/0814/led_main_3_3.txt new file mode 100644 index 0000000..cdf3c67 --- /dev/null +++ b/0814/led_main_3_3.txt @@ -0,0 +1,42 @@ +./led_main 3 3 +led main task start +red ON +led orange task start +orange ON +led blue task start +blue ON +red OFF +red ON +blue OFF +orange OFF +red OFF +blue ON +red ON +red OFF +orange ON +blue OFF +red ON +red OFF +blue ON +red ON +orange OFF +red OFF +blue OFF +red ON +red OFF +orange ON +led blue task end +red ON +red OFF +red ON +orange OFF +red OFF +red ON +red OFF +led orange task end +red ON +red OFF +led main task end +led red blinked 10 times +led blue blinked 3 times +led orange blinked 3 times diff --git a/0814/led_orange.c b/0814/led_orange.c new file mode 100644 index 0000000..7952f6d --- /dev/null +++ b/0814/led_orange.c @@ -0,0 +1,21 @@ +#include "led.h" + +void *led_orange_task(void *arg) +{ + printf("led orange task start\n"); + int i, count = 0; + pinMode(5, OUTPUT); + + for (i = 0; i < (int)arg; i++, count++) + { + digitalWrite(5, HIGH); + printf("orange ON\n"); + delay(3000); + digitalWrite(5, LOW); + printf("orange OFF\n"); + delay(3000); + } + + printf("led orange task end\n"); + pthread_exit((void *)count); +} -- GitLab