LED驱动讲解,对于一个嵌入式的工程师还是一个刚开是学习相关电子设计的朋友,对于LED的驱动问题应该不甚陌生。我所说的LED驱动并不是类似大功率LED照明的那个驱动,而是简单的控制器对LED的控制驱动。

在uTenux\AT91SAM3S4C开发板上板载了三个LED等,分别位绿色灯、蓝色灯、红色灯。其中红色灯较为特殊,他既是开发板的电源指示灯,又可以由用户控制器亮灭,具体的电路原理我就在这里不在赘述了,不懂的朋友请查阅第二节的简介或参考开发板电路图及EB-SAM3S4C_Usermanual.pdf文档,如果这些都不能解决,您可以联系我,我会尽快的回复您的。

下面就LED的驱动做详细的讲述:

1、 按第三节中的工程模板建立相应的工程,我的工程组织关系如下图所示:

2、 对工程进行配置。添加工程头文件的包含路径,设置编译器位—gnu,设置Link等,具体参考第三节的两篇介绍。

3、 编写main.c函数,我的main.c如下:

//--------Include Head------------

#include "board.h"

#include <stdio.h>

//-------Port Defined------

//-------Data Defined-------

//--------Sub Function-------

/*---------------------------------

Description : None

Input : None

Output : None

Others : None

---------------------------------*/

//--------ISR Function----------

//---------Main Function--------

extern int  main (void)

  {

    /* Disable watchdog*/

    WDT_Disable( WDT ) ;

printf("\r\n\tHello EM-SAM3S-Kit\r\n"); 

printf( "\r\nCompiled: %s %s\r\n", __DATE__, __TIME__ ) ;

printf("\n\t   -- ^_^ Bruce Lone\r\n"); 

    if ( TimeTick_Configure( BOARD_MCK ) != 0 )

{

        printf( "-F- Systick configuration error\n\r" ) ;

}

LED_Configure(LED_BLUE);

LED_Configure(LED_RED);

LED_Configure(LED_GREEN);

LED_Set(LED_BLUE);

LED_Clear(LED_RED);

LED_Set(LED_GREEN);

  while(1)

    {

  Wait(100);//该函数是由定时器延时产生的,主要编写其中断函数

  LED_Clear(LED_BLUE);

  Wait(100);

  LED_Clear(LED_GREEN);

  Wait(100);

  LED_Set(LED_BLUE);

  Wait(100);

  LED_Set(LED_GREEN);

    }

  }

涉及到Wait()函数的中断函数编写如下

/*

* FileName : Interrupt.C

* Description : Interrupt Service Route

* Purpose : ISR

* Setup Time : 2012-5-31

* Version : 00.00.00

* Author : Bruce Lone

* Others : None

______________________________________________________

Logs :

______________________________________________________

* 001 :

* Modify : 

* Modification Time :

* Mender :

* Others :

======================================================

*/

//--------Include Head------------

#include "Interrupt.h"

//-------Data Defined-------

//--------Function-------

/*---------------------------------

Description : Time Tick Delay

Input : None

Output : None

Others : None

---------------------------------*/

void SysTick_Handler( void )

{

    TimeTick_Increment() ;

}

4、 做好上面的这些,您就可以编译下载了。

5、 实验现象:(请连接串口线至PC机,PC机请打开串口软件baud = 115200)

您可以看到板载的蓝色灯和绿色灯交替亮灭,串口软件上显示最后编译的时间等信息。

由于本实验相对较为简单,就不做多余的讲解了,如果您有问题可以跟帖或发送信息给我,我会尽快回复您的。谢谢您阅读本文,如果您对本文有任何的异议或意见建议,麻烦您能够联系我,谢谢。

uTenux——LED驱动讲解的更多相关文章

  1. 兼容可控硅调光的一款LED驱动电路记录

    1.该款电路为兼容可控硅调光的LED驱动电路,采用OB3332为开关控制IC,拓扑方案为Buck: 2.FB1:磁珠的单位是欧姆,而不是亨利,这一点要特别注意.因为磁珠的单位是按照它在某一频率 产生的 ...

  2. FL2440驱动添加(4)LED 驱动添加

    硬件信息:FL2440板子,s3c2440CPU带四个LED,分别在链接GPB5,GPB6,GPB8,GPB10 内核版本:linux-3.8.0 led驱动代码如下: 值得注意地方地方: 1,定时器 ...

  3. linux设备驱动归纳总结(五):4.写个简单的LED驱动【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-84693.html linux设备驱动归纳总结(五):4.写个简单的LED驱动 xxxxxxxxxxx ...

  4. Android系统移植与驱动开发——第七章——LED驱动

    LED驱动的实现原理 编写LED驱动: 测试LED驱动之前需要用USB数据线连接开发板,然后打开电源,成功启动之后,执行build.sh脚本文件编译和安装LED驱动,顺利则会自动连接 如果有多个设备文 ...

  5. 全志A33 linux led驱动编程(附实测参考代码)

    开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 QQ:641395230 开发平台 * 芯灵思Sinl ...

  6. Linux驱动之LED驱动编写

    从上到下,一个软件系统可以分为:应用程序.操作系统(内核).驱动程序.结构图如下:我们需要做的就是写出open.read.write等驱动层的函数.一个LED驱动的步骤如下: 1.查看原理图,确定需要 ...

  7. (笔记)linux设备驱动--LED驱动

    linux设备驱动--LED驱动 最近正在学习设备驱动开发,因此打算写一个系列博客,即是对自己学习的一个总结,也是对自己的一个督促,有不对,不足,需要改正的地方还望大家指出,而且希望结识志同道合的朋友 ...

  8. JZ2440 启动NFS网络文件系统_初试led驱动

    http://blog.csdn.net/emdfans/article/details/12260969 u-boot ---> q 修改bootargs变量 默认: bootargs=noi ...

  9. 基于sys文件系统的LED驱动的移植【原创】

    基于RK3188平台LED驱动程序的移植的移植.如有不正确之处,欢迎大家指点. 本文的LED驱动程序不是通过打开设备节点来访问和控制LED的,是通过sys文件系统来控制LED. 板子上有四盏灯以及对应 ...

随机推荐

  1. Oracle EBS环境下查找数据源(OAF篇)

    在用户层设置预制文件:Personalize Self-Service Defn 的值为Yes 来启动个性化模式 参考:http://www.2cto.com/database/201109/1041 ...

  2. springmvc简述

    Spring Web MVC 是一种基于 Java 的实现了 Web MVC 设计模式的请求驱动类型的轻量级 Web 框架,即使用了 MVC 架构模式的思想,将 web 层进行职责解耦,基于请求驱动指 ...

  3. linux-kernel 学习计划

    [资料] http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp http://www.kerneltravel.net/ [ ...

  4. CentOS修改主机名和网络信息

    1.修改主机名称 [root@centos ~]# vim /etc/sysconfig/network打开文件,修改以下内容并保存 NETWORKING=yes #使用网络 HOSTNAME=cen ...

  5. linux设备驱动归纳总结(六):2.分享中断号【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-90837.html xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  6. Github上PHP资源汇总大全,php学习的好资料

    Github上PHP资源汇总大全,php学习的好资料 国外程序员ziadoz 在Github上收集整理了PHP的各种资源,内容包括模板.框架.数据库.安全等方面的库和工具.汇总了各种PHP资源,供各位 ...

  7. input放在a标签里面不能选择input里面的文本,IE9点击失效

    input放在a标签里面不能选择input里面的文本,IE9点击失效 在IE浏览器中<input type="text" value="test" /&g ...

  8. Dynamics AX 2012 R2 Service Middle Tier WCF WCF转发

    参考了蒋金楠老师08年的文章.好吧,那时候我才大二.大三,大神果然是大神. http://www.cnblogs.com/artech/archive/2008/09/01/1280939.html ...

  9. Python升级Yum不能使用解决

    1.系统版本 [root@vm10-254-206-95 ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m 2.系统默认 ...

  10. Python基础第一篇

    一.第一句python代码 1.python执行过程:1.加载内存-词法分析-语法分析-编译-执行 2.创建hello.py文件,输入内容 #!/usr/bin/env python print &q ...