OK6410裸机程序---leds
2011-05-02 15:49
323 查看
今天写一下OK6410裸机中的led灯,led是差不最简单的裸机驱动了吧。详细的说一下,以便梳理自己的知识。
我们首先看一下OK6410的LED连接图:
![](http://hi.csdn.net/attachment/201105/2/0_1304321137buAu.gif)
其中NLED1234,和s3c6410的GPIO引脚相连,如图:
![](http://hi.csdn.net/attachment/201105/2/0_1304321214yIEH.gif)
其实LED发光的原理很简单的,就是把LED连接到s3c6410的GPIO引脚,通过改变s3c6410的GPIO上的电平来控制LED发光。
这样的话就很清楚了,我们来看下s3c6410 datasheet上关于GPIO引脚的设置:
首先是GPMCON寄存器:
![](http://hi.csdn.net/attachment/201105/2/0_1304321574be4K.gif)
因为我们要控制GPIO的电平,所以要把对应的GPIO引脚设置为Output,即:0001
像我们这个就是:GPMCON &=0xffff fff1;
把这个引脚设置好后,我们可以通过改变GPMDAT的值来改变引脚上的电平。下面是GPMDAT:
![](http://hi.csdn.net/attachment/201105/2/0_1304322160jHJf.gif)
可以看出来我们只要把对应的位设置为0或1,就可以控制LED了。简单吧?
下面看下源程序:
这样,leds就交替亮了。
我们首先看一下OK6410的LED连接图:
![](http://hi.csdn.net/attachment/201105/2/0_1304321137buAu.gif)
其中NLED1234,和s3c6410的GPIO引脚相连,如图:
![](http://hi.csdn.net/attachment/201105/2/0_1304321214yIEH.gif)
其实LED发光的原理很简单的,就是把LED连接到s3c6410的GPIO引脚,通过改变s3c6410的GPIO上的电平来控制LED发光。
这样的话就很清楚了,我们来看下s3c6410 datasheet上关于GPIO引脚的设置:
首先是GPMCON寄存器:
![](http://hi.csdn.net/attachment/201105/2/0_1304321574be4K.gif)
因为我们要控制GPIO的电平,所以要把对应的GPIO引脚设置为Output,即:0001
像我们这个就是:GPMCON &=0xffff fff1;
把这个引脚设置好后,我们可以通过改变GPMDAT的值来改变引脚上的电平。下面是GPMDAT:
![](http://hi.csdn.net/attachment/201105/2/0_1304322160jHJf.gif)
可以看出来我们只要把对应的位设置为0或1,就可以控制LED了。简单吧?
下面看下源程序:
void (*printf)(char *,...) = 0xc7e11650; #define GPMCON (*(unsigned long volatile *)0x7F008820) #define GPMDAT (*(unsigned long volatile *)0x7F008824) #define GPMPUD (*(unsigned long volatile *)0x7F008828) /* * NLED1 GPM0 * NLED2 GPM1 * NLED3 GPM2 * NLED4 GPM3 */ void set_gpio(void); void udelay(); int main(void) { set_gpio(); printf("%2x/n",GPMDAT); GPMDAT = 0x00; int i; while(1) { for(i=0;i<=3;i++) { GPMDAT = (1<<i); udelay(); } } return 0; } /* * delay */ void udelay() { unsigned long i=0; for(i=0;i<1000000;i++); } void set_gpio(void) { GPMCON &= 0xffff1111; }
这样,leds就交替亮了。
相关文章推荐
- OK6410裸机程序---leds
- ok6410 SD卡烧写裸机程序(支持大文件烧写)
- 【OK6410裸机程序】按键中断
- ok6410-第06篇-裸机led程序
- 【OK6410裸机程序】串口初始化
- OK6410烧写裸机程序到nandflash,不使用jlink,支持大文件烧写
- 【OK6410裸机程序】LCD驱动
- OK6410裸机程序(二)——系统时钟
- OK6410裸机程序
- 【OK6410裸机程序】异常处理
- 一灯大师之点亮OK6410开发板上4个LED裸机程序---嵌入式回归第十篇
- 【OK6410裸机程序】点亮LED
- 【OK6410裸机程序】时钟初始化
- OK6410裸机程序---hello world
- OK6410烧写裸机程序到nandflash(改)
- 只用串口和网络裸机开发ARM程序(OK6410开发板)纯(转)
- ok6410裸机开发启动程序模板
- 【OK6410裸机程序】DDR始化
- OK6410裸机程序(一)——GPIO(LED)
- OK6410裸机程序 ----led