/*********************************************************************************
|
* 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"
|
|
#define msleep(x) usleep( 1000*(x) )
|
|
#define DELAY 500
|
|
int main(int argc, char *argv[])
|
{
|
init_led();
|
|
while(1)
|
{
|
turn_led(LED_R, ON);
|
msleep(DELAY);
|
turn_led(LED_R, OFF);
|
msleep(DELAY);
|
|
turn_led(LED_G, ON);
|
msleep(DELAY);
|
turn_led(LED_G, OFF);
|
msleep(DELAY);
|
|
turn_led(LED_B, ON);
|
msleep(DELAY);
|
turn_led(LED_B, OFF);
|
msleep(DELAY);
|
}
|
|
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;
|
}
|