led_test.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "hw_types.h"
  2. #include "hw_syscfg0_C6748.h" // 系统配置模块寄存器
  3. #include "soc_C6748.h"
  4. #include "psc.h"
  5. #include "gpio.h"
  6. #include "hal/nim_gpio.h"
  7. void PSCInit(void);
  8. void GPIOBankPinMuxSet();
  9. void GPIOBankPinInit(void);
  10. void Delay(unsigned int n);
  11. void LedTest()
  12. {
  13. //PSCInit();
  14. GPIOBankPinMuxSet();
  15. GPIOBankPinInit();
  16. for(; ;)
  17. {
  18. Delay(0x00FFFFFF);
  19. GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_LOW);
  20. Delay(0x00FFFFFF);
  21. GPIOPinWrite(SOC_GPIO_0_REGS, 17, GPIO_PIN_HIGH);
  22. Delay(0x00FFFFFF);
  23. GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_LOW);
  24. Delay(0x00FFFFFF);
  25. GPIOPinWrite(SOC_GPIO_0_REGS, 18, GPIO_PIN_HIGH);
  26. Delay(0x00FFFFFF);
  27. GPIOPinWrite(SOC_GPIO_0_REGS, 19, GPIO_PIN_LOW);
  28. Delay(0x00FFFFFF);
  29. GPIOPinWrite(SOC_GPIO_0_REGS, 19, GPIO_PIN_HIGH);
  30. Delay(0x00FFFFFF);
  31. GPIOPinWrite(SOC_GPIO_0_REGS, 20, GPIO_PIN_LOW);
  32. Delay(0x00FFFFFF);
  33. GPIOPinWrite(SOC_GPIO_0_REGS, 20, GPIO_PIN_HIGH);
  34. }
  35. }
  36. void PSCInit(void)
  37. {
  38. // 使能 GPIO 模块
  39. // 对相应外设模块的使能也可以在 BootLoader 中完成
  40. //PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
  41. }
  42. void GPIOBankPinMuxSet()
  43. {
  44. GOIOBank1Pin0MuxMuxSetup();
  45. GOIOBank1Pin1MuxMuxSetup();
  46. GOIOBank1Pin2MuxMuxSetup();
  47. GOIOBank1Pin3MuxMuxSetup();
  48. }
  49. void GPIOBankPinInit(void)
  50. {
  51. GPIODirModeSet(SOC_GPIO_0_REGS, 17, GPIO_DIR_OUTPUT); // D7 GPIO1[0]
  52. GPIODirModeSet(SOC_GPIO_0_REGS, 18, GPIO_DIR_OUTPUT); // D7 GPIO1[1]
  53. GPIODirModeSet(SOC_GPIO_0_REGS, 19, GPIO_DIR_OUTPUT); // D7 GPIO1[2]
  54. GPIODirModeSet(SOC_GPIO_0_REGS, 20, GPIO_DIR_OUTPUT); // D7 GPIO1[3]
  55. }
  56. void Delay(unsigned int n)
  57. {
  58. unsigned int i;
  59. for(i=n;i>0;i--);
  60. }