您的位置 首页 IOT

OK6410裸机程序—leds

今天写一下OK6410裸机中的led灯,led是差不最简单的裸机驱动了吧。详细的说一下,以便梳理自己的知识。我们首先看一下OK6410的LED连接图:

今日写一下OK6410裸机中的led灯,led是差不最简略的裸机驱动了吧。具体的说一下,以便整理自己的常识。

咱们首要看一下OK6410的LED衔接图:

其间NLED1234,和s3c6410的GPIO引脚相连,如图:

其实LED发光的原理很简略的,便是把LED衔接到s3c6410的GPIO引脚,经过改动s3c6410的GPIO上的电平来操控LED发光。

这样的话就很清楚了,咱们来看下s3c6410 datasheet上关于GPIO引脚的设置:

首要是GPMCON寄存器:

由于咱们要操控GPIO的电平,所以要把对应的GPIO引脚设置为Output,即:0001

像咱们这个便是:GPMCON &=0xffff fff1;

把这个引脚设置好后,咱们能够经过改动GPMDAT的值来改动引脚上的电平。下面是GPMDAT:

能够看出来咱们只要把对应的位设置为0或1,就能够操控LED了。简略吧?

下面看下源程序:

  1. void(*printf)(char*,…)=0xc7e11650;
  2. #defineGPMCON(*(unsignedlongvolatile*)0x7F008820)
  3. #defineGPMDAT(*(unsignedlongvolatile*)0x7F008824)
  4. #defineGPMPUD(*(unsignedlongvolatile*)0x7F008828)
  5. /*
  6. *NLED1GPM0
  7. *NLED2GPM1
  8. *NLED3GPM2
  9. *NLED4GPM3
  10. */
  11. voidset_gpio(void);
  12. voidudelay();
  13. intmain(void)
  14. {
  15. set_gpio();
  16. printf(“%2x/n”,GPMDAT);
  17. GPMDAT=0x00;
  18. inti;
  19. while(1){
  20. for(i=0;i<=3;i++)
  21. {
  22. GPMDAT=(1<
  23. udelay();
  24. }
  25. }
  26. return0;
  27. }
  28. /*
  29. *delay
  30. */
  31. voidudelay()
  32. {
  33. unsignedlongi=0;
  34. for(i=0;i<1000000;i++);
  35. }
  36. voidset_gpio(void)
  37. {
  38. GPMCON&=0xffff1111;
  39. }

这样,leds就替换亮了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/276923.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部