tr_led.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * led.c
  3. *
  4. * Created on: 2025年7月24日
  5. * Author: Administrator
  6. */
  7. #include <stdio.h>
  8. #include "tr_led.h"
  9. #include "soc_C6748.h"
  10. #include "psc.h"
  11. #include "gpio.h" // 通用输入输出口宏及设备抽象层函数声明
  12. #include "TL6748.h" // 创龙 DSP6748 开发板相关声明
  13. #include "tr_timer.h"
  14. void LedInit(void){
  15. // 使能 GPIO 模块
  16. // 对相应外设模块的使能也可以在 BootLoader 中完成
  17. PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_GPIO, PSC_POWERDOMAIN_ALWAYS_ON, PSC_MDCTL_NEXT_ENABLE);
  18. // 管脚复用配置,配置相应的 GPIO 口功能为普通输入输出口
  19. // 底板 LED
  20. GPIOBank0Pin0PinMuxSetup();
  21. // 设置输出模式
  22. GPIODirModeSet(SOC_GPIO_0_REGS, 1, GPIO_DIR_OUTPUT); // D7 GPIO0[0]
  23. }
  24. static void LedToggle(void){
  25. static unsigned char Flag = 0;
  26. if(Flag == 0){
  27. GPIOPinWrite(SOC_GPIO_0_REGS, 1, GPIO_PIN_LOW); // D7 灭 GPIO0[0]
  28. }else {
  29. GPIOPinWrite(SOC_GPIO_0_REGS, 1, GPIO_PIN_HIGH); // D7 亮 GPIO0[0]
  30. }
  31. Flag = !Flag;
  32. }
  33. // 闪烁流程
  34. void LedFlashingMain(void){
  35. // 定时器
  36. static struct TimerStruct timer = {0, 0};
  37. if(GetPassedTime(&timer) >= 100){
  38. LedToggle();
  39. ClearTimer(&timer);
  40. }
  41. }