led.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2011-01-13 weety first version
  9. */
  10. #include <rtthread.h>
  11. #include <at91sam926x.h>
  12. #include "led.h"
  13. #if 1
  14. // GB9260 board
  15. #define PIO_LED AT91_PIOB
  16. #define LED1 (1 << 25) // LED_SYS
  17. #define LED2 (0)
  18. #define LED3 (1 << 23) // LED_USR
  19. #define LED_ALL (LED1 | LED2 | LED3)
  20. #else
  21. #define PIO_LED AT91_PIOC
  22. #define LED1 (1 << 8)
  23. #define LED2 (1 << 11)
  24. #define LED3 (1 << 6)
  25. #define LED_ALL (LED1 | LED2 | LED3)
  26. #endif
  27. void led_init(void)
  28. {
  29. at91_sys_write(PIO_LED+0x00, LED_ALL);
  30. at91_sys_write(PIO_LED+0x10, LED_ALL);
  31. at91_sys_write(PIO_LED+0x64, LED_ALL);
  32. at91_sys_write(PIO_LED+0x30, LED_ALL);
  33. }
  34. void led_on(int num)
  35. {
  36. switch(num)
  37. {
  38. case 1:
  39. at91_sys_write(PIO_LED+0x34, LED1);
  40. break;
  41. case 2:
  42. at91_sys_write(PIO_LED+0x34, LED2);
  43. break;
  44. case 3:
  45. at91_sys_write(PIO_LED+0x34, LED3);
  46. break;
  47. default:
  48. break;
  49. }
  50. }
  51. void led_off(int num)
  52. {
  53. switch(num)
  54. {
  55. case 1:
  56. at91_sys_write(PIO_LED+0x30, LED1);
  57. break;
  58. case 2:
  59. at91_sys_write(PIO_LED+0x30, LED2);
  60. break;
  61. case 3:
  62. at91_sys_write(PIO_LED+0x30, LED3);
  63. break;
  64. default:
  65. break;
  66. }
  67. }