From e66340112f34b9ddcf18a151c794b76bc140b00a Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Sun, 14 Oct 2018 19:22:10 +0800
Subject: [PATCH] Add GPIO LED program

---
 modules/c/led.c |   86 ++++++++++++++++++++++++++++
 modules/c/led.h |   48 ++++++++++++++++
 2 files changed, 134 insertions(+), 0 deletions(-)

diff --git a/modules/c/led.c b/modules/c/led.c
new file mode 100644
index 0000000..8007bcd
--- /dev/null
+++ b/modules/c/led.c
@@ -0,0 +1,86 @@
+/*********************************************************************************
+ *      Copyright:  (C) 2018 LingYun IoT System Studio
+ *                  All rights reserved.
+ *
+ *       Filename:  led.c
+ *    Description:  This file is used to control RGB 3-colours LED
+ *
+ *     pi@raspberrypi:~ $ gpio readall show BCM and wPi pinmap  
+ *
+ *                 LED      BCM           wPi 
+ *                  B ---- GPIO.13  ---- GPIO.23
+ *                  R ---- GPIO.19  ---- GPIO.24    
+ *                  G ---- GPIO.26  ---- GPIO.25
+ *                  I ---- GND      ----
+ *                 
+ *        Version:  1.0.0(2018/10/14)
+ *         Author:  Guo Wenxue <guowenxue@gmail.com>
+ *      ChangeLog:  1, Release initial version on "2018/10/14 12:13:26"
+ *                 
+ ********************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <string.h>
+#include <time.h>
+#include <errno.h>
+
+#include <wiringPi.h>
+#include "led.h"
+
+
+int main(int argc, char *argv[])
+{
+	init_led();
+
+	while(1)
+	{
+		turn_led(LED_R, ON);
+		sleep(1);
+		turn_led(LED_R, OFF);
+		sleep(1);
+
+		turn_led(LED_G, ON);
+		sleep(1);
+		turn_led(LED_G, OFF);
+		sleep(1);
+
+		turn_led(LED_B, ON);
+		sleep(1);
+		turn_led(LED_B, OFF);
+		sleep(1);
+	}
+
+        return 0;
+}
+
+void init_led(void)
+{
+	int         i;
+
+       	wiringPiSetup();
+
+	for(i=0; i<LED_MAX; i++)
+	{
+	       	pinMode( led_gpio[i], OUTPUT );
+	}
+}
+
+int turn_led(int which, int cmd)
+{
+	if( which<0 || which>=LED_MAX )
+		return -1;
+
+
+	if( OFF == cmd )
+	       	digitalWrite (led_gpio[which], LOW);
+	else
+	       	digitalWrite (led_gpio[which], HIGH);
+
+	return 0;
+}
+
+
diff --git a/modules/c/led.h b/modules/c/led.h
new file mode 100644
index 0000000..582d845
--- /dev/null
+++ b/modules/c/led.h
@@ -0,0 +1,48 @@
+/*********************************************************************************
+ *      Copyright:  (C) 2018 LingYun IoT System Studio
+ *                  All rights reserved.
+ *
+ *       Filename:  led.c
+ *    Description:  This file is used to control RGB 3-colours LED
+ *
+ *     pi@raspberrypi:~ $ gpio readall show BCM and wPi pinmap  
+ *
+ *                 LED      BCM           wPi 
+ *                  B ---- GPIO.13  ---- GPIO.23
+ *                  R ---- GPIO.19  ---- GPIO.24    
+ *                  G ---- GPIO.26  ---- GPIO.25
+ *                  I ---- GND      ----
+ *                 
+ *        Version:  1.0.0(2018/10/14)
+ *         Author:  Guo Wenxue <guowenxue@gmail.com>
+ *      ChangeLog:  1, Release initial version on "2018/10/14 12:13:26"
+ *                 
+ ********************************************************************************/
+
+#ifndef __LED_H
+#define __LED_H
+
+#define OFF   0
+#define ON    1
+
+/* Three LEDs code */
+enum
+{
+	LED_R = 0,
+	LED_G,
+	LED_B,
+	LED_MAX,
+};
+
+/* 3 LEDs WiringPi GPIO port */
+                               
+                              /* LED_R  LED_G   LED_B */
+static int led_gpio[LED_MAX]= {   24,    25,     23  };
+
+
+void init_led(void);
+int turn_led(int which, int cmd);
+
+
+#endif
+

--
Gitblit v1.9.1