fl2440——Platform-LED实例

/*********************************************************************************
 *      Copyright:  (C) 2017 TangBin<tangbinmvp@gmail.com>
 *                  All rights reserved.
 *
 *       Filename:  plat_led_test.c
 *    Description:  This file 
 *                 
 *        Version:  1.0.0(03/30/2017)
 *         Author:  TangBin <tangbinmvp@gmail.com>
 *      ChangeLog:  1, Release initial version on "03/30/2017 05:49:20 PM"
 *                 
 ********************************************************************************/

#include <stdio.h>
#include <stdarg.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>

#define DEVNAME_LEN    10

#define PLATDRV_MAGIC             0x60
#define LED_OFF                   _IO (PLATDRV_MAGIC, 0x18)
#define LED_ON                    _IO (PLATDRV_MAGIC, 0x19)
#define LED_BLINK                 _IO (PLATDRV_MAGIC, 0x1A)

int main(int argc, char **argv)
{
    int  ctl_number;
    int  led_number;
    int  fd;
    char dev_name[DEVNAME_LEN]={0,0,0,0};

    if(argc == 3)
    {
        snprintf(dev_name,sizeof(dev_name),"/dev/led");
        fd = open(dev_name, O_RDWR, 0755);
        if(fd<0)
            goto err;

        ctl_number = atoi(argv[1]);
        led_number = atoi(argv[2]);

        if(0  == ctl_number)
            ioctl(fd,LED_ON,led_number);
        else if(1 == ctl_number)
            ioctl(fd,LED_OFF,led_number);
        else if(2 == ctl_number)
            ioctl(fd,LED_BLINK,led_number);
    }
    else
    {
        printf("error!\n");
        printf("Please enter the correct parameters.\n");
        printf("correct format: %s 0(on)|1(off)|2(blink) 0|1|2|3\n",argv[0]);
    }

     close(fd);

err:
     close(fd);

    return 0;
}

可以通过参数控制LED灯的三种状态:亮、灭、闪烁。
如:./a.out 0 1就是LED1亮 ; ./a.out 2 0就是LED0闪烁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值