当前位置:首页 > LED驱动程序设计 - 图文
LED驱动程序设计
分类: ARM系统进阶班(arm裸机程序)2012-08-24 13:23 1561人阅读 评论(0) 收藏 举报
首先声明,此文章是基于对国嵌视频教程中
tiny6410有关视频教程
的总结,为方便大家的复习。再次予以感谢,感谢国嵌各位老师为我们提供如此好的视频教程,为对于想要迈入嵌入式大门却迟迟找不到合适方法的学子们指引一条光明的方向。好了,接下来步入正题,此处将介绍tiny6410 LED驱动程序的设计。
2 下面来看看tiny6410关于LED的原理图如图(1)所示:
图1 LED原理图
3 LED实例,代码如下所示:(代码摘自\\光盘4\\实验代码\\3-3-1\\src\\main.c) main.c
[cpp] view plaincopy
1. /********************************************************** 2. *实验要求: 用Tiny6410上的4个LED资源实现跑马灯程序。 3. *功能描述: Tiny6410用下面4个引脚连接了LED发光二极管,分别是 4. * GPK4--LED1 5. * GPK5--LED2 6. * GPK6--LED3 7. * GPK7--LED4
8. * 本程序将控制这四个管脚的输出电平,实现跑马灯的效果 9. *日 期: 2011-3-10 10. *作 者: 国嵌
11. **********************************************************/ 12. #include \ 13. #include \ 14.
15. #define LED1_ON ~(1<<4) 16. #define LED2_ON ~(1<<5) 17. #define LED3_ON ~(1<<6) 18. #define LED4_ON ~(1<<7) 19.
20. #define LED1_OFF (1<<4)
21. #define LED2_OFF (1<<5) 22. #define LED3_OFF (1<<6) 23. #define LED4_OFF (1<<7) 24. #define LEDALL_OFF (0xf<<4) 25. 26. //GPIO
27. #define GPIO_BASE (0x7F008000) 28. //oGPIO_REGS类型在 gpio.h 中定义
29. #define GPIO (( volatile oGPIO_REGS *)GPIO_BASE) 30.
31. //函数声明
32. void delay(int times); 33. void LedPortInit(void); 34. void LedRun(void); 35. 36. /*
37. * 程序入口 38. * */
39. int main(void) 40. {
41. LedPortInit(); 42. LedRun(); 43. } 44. 45. /*
46. * 延时函数 47. * */
48. void delay(int times) 49. {
50. int i;
51. for(;times>0;times--) 52. for(i=0;i<3000;i++); 53. } 54. 55. /*
56. * 初始化连接LED灯的管脚资源
57. * @ 通过将GPIO_BASE强制转化为(volatile oGPIO_REGS*)型的指针可以很方便 58. * 的访问各个GPIO寄存器的值,这种方法比通过使用寄存器地址的宏定义访问 59. * 寄存器单元更加规范和科学。 60. * */
61. void LedPortInit(void) 62. {
63. u32 uConValue;
64. uConValue = GPIO->rGPIOKCON0;
共分享92篇相关文档