[原创] 【LPC54100】第一例RGB闪烁(keil版)

ketose   2015-2-16 00:31 楼主
今天刚收到这个板子,研究了一下,这个板子上有个RGB的LED灯,那我们不从简单的开始让RGB交替显示。 1、电路图 QQ图片20150216000121.png 2、实现思路 对GPIO端口 P0口的29,30,31引脚分别置高低电平,实现交替闪烁。 3、实现代码
  1. #include <LPC54xxx.h> // Device header
  2. #include <stdint.h>
  3. #define LED_NUM (3)
  4. #define LED_RED 29
  5. #define LED_GREEN 30
  6. #define LED_BLUE 31
  7. const uint32_t led_mask[] = { 1UL << LED_RED, 1UL << LED_GREEN, 1UL << LED_BLUE };
  8. //打开一个LED
  9. void LED_On (uint32_t num)
  10. {
  11. num = num - 29;
  12. LPC_GPIO->CLR0 = led_mask[num]; /* LED On */
  13. }
  14. //关闭一个LED
  15. void LED_Off (uint32_t num)
  16. {
  17. num = num - 29;
  18. LPC_GPIO->SET0 = led_mask[num]; /* LED Off */
  19. }
  20. //打开或关闭全部的LED
  21. int32_t LED_SetOut(uint32_t value)
  22. {
  23. int i;
  24. for (i = 0; i < LED_NUM; i++)
  25. {
  26. if (value & (1<<i))
  27. {
  28. LED_On (i);
  29. } else
  30. {
  31. LED_Off(i);
  32. }
  33. }
  34. return 0;
  35. }
  36. //初始化LED
  37. void LED_Initialize (void)
  38. {
  39. LPC_SYSCON->AHBCLKCTRLSET0 = (1UL << 14); /* enable GPIO0 clock */
  40. LPC_GPIO->DIR0 |= (led_mask[0] | /* configure GPIO as output */
  41. led_mask[1] |
  42. led_mask[2] );
  43. LED_SetOut (0); /* switch LEDs off */
  44. }
  45. //延时
  46. void delay(uint32_t num)
  47. {
  48. uint32_t i,j;
  49. for(i=0;i<num;i++)
  50. for(j=0;j<num;j++)
  51. {}
  52. }
  53. int main()
  54. {
  55. int flashHz = 1000;
  56. LED_Initialize();
  57. while(1)
  58. {
  59. LED_On(LED_RED);
  60. delay(flashHz);
  61. LED_Off(LED_RED);
  62. delay(flashHz);
  63. LED_On(LED_GREEN);
  64. delay(flashHz);
  65. LED_Off(LED_GREEN);
  66. delay(flashHz);
  67. LED_On(LED_BLUE);
  68. delay(flashHz);
  69. LED_Off(LED_BLUE);
  70. delay(flashHz);
  71. }
  72. }
4、实现效果 视频发布中,稍后补上。 本帖最后由 ketose 于 2015-2-16 10:42 编辑

回复评论 (7)

开发环境?楼主用?
水不撩不知深浅 人不拼怎知输赢
点赞  2015-2-16 07:44
楼主对LPC的寄存器很了解啊
点赞  2015-2-16 08:12
这种宏定义方式不错~学习了
点赞  2015-2-16 08:47
这是哪个核上运行的?
点赞  2015-2-16 08:48
引用: fxyc87 发表于 2015-2-16 08:48
这是哪个核上运行的?



在M4内核上跑的。
点赞  2015-2-16 10:43
引用: wo4fisher 发表于 2015-2-16 07:44
开发环境?楼主用?



用Keil开发的。用寄存器好理解些。
点赞  2015-2-16 10:43
视频拍的不错,赞一个~~
点赞  2015-3-1 01:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复