色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          OK6410裸機(jī)程序---leds

          作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
          今天寫一下OK6410裸機(jī)中的led燈,led是差不最簡(jiǎn)單的裸機(jī)驅(qū)動(dòng)了吧。詳細(xì)的說一下,以便梳理自己的知識(shí)。

          我們首先看一下OK6410的LED連接圖:

          本文引用地址:http://cafeforensic.com/article/201611/317818.htm

          其中NLED1234,和s3c6410的GPIO引腳相連,如圖:

          其實(shí)LED發(fā)光的原理很簡(jiǎn)單的,就是把LED連接到s3c6410的GPIO引腳,通過改變s3c6410的GPIO上的電平來控制LED發(fā)光。

          這樣的話就很清楚了,我們來看下s3c6410 datasheet上關(guān)于GPIO引腳的設(shè)置:

          首先是GPMCON寄存器:

          因?yàn)槲覀円刂艷PIO的電平,所以要把對(duì)應(yīng)的GPIO引腳設(shè)置為Output,即:0001

          像我們這個(gè)就是:GPMCON &=0xffff fff1;

          把這個(gè)引腳設(shè)置好后,我們可以通過改變GPMDAT的值來改變引腳上的電平。下面是GPMDAT:

          可以看出來我們只要把對(duì)應(yīng)的位設(shè)置為0或1,就可以控制LED了。簡(jiǎn)單吧?

          下面看下源程序:

          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就交替亮了。



          關(guān)鍵詞: OK6410裸機(jī)程序led

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉