You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.8 KiB

3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
  1. #if 0
  2. #include "systick.h"
  3. extern uint32_t g_sys_sick;
  4. /*********************************************************
  5. : void User_SysTickInit(void)
  6. : 100us
  7. :
  8. :
  9. :
  10. 1ms(48000)
  11. **********************************************************/
  12. void User_SysTickInit(void)
  13. {
  14. SYSTICK_InitStruType x;
  15. // x.SysTick_Value = SystemCoreClock / 10000;//重装载值4800(SystemCoreClock=48M)
  16. // x.SysTick_ClkSource = SysTick_ClkS_Cpu;//时钟48M
  17. // x.SysTick_ITEnable = Enable;
  18. // SysTick_Init(&x);//现在滴答定时器时钟用的48M,重装载值4800 t=1s/f(f=48M/4800)
  19. x.SysTick_Value = SystemCoreClock / 1000;
  20. x.SysTick_ClkSource = SysTick_ClkS_Cpu;//时钟48M
  21. x.SysTick_ITEnable = Enable;
  22. SysTick_Init(&x);//现在滴答定时器时钟用的48M,重装载值4800 t=1s/f(f=48M/48000)
  23. SysTick_Disable();
  24. }
  25. //采用滴答定时器的时钟源,滴答定时器配置的是100us
  26. // extern uint32_t g_sys_sick;
  27. /**
  28. * @brief ticket辅助方法
  29. */
  30. uint32_t get_sys_ticket(void) { return g_sys_sick; }
  31. uint32_t port_haspassedms(uint32_t ticket) {
  32. uint32_t nowticket = get_sys_ticket();
  33. if (nowticket >= ticket) {
  34. return nowticket - ticket;
  35. }
  36. return UINT32_MAX - ticket + nowticket;
  37. }
  38. void port_do_debug_light_state(void) {
  39. static uint32_t lastprocess = 0;
  40. static uint8_t debug_led_state = 1;
  41. if (port_haspassedms(lastprocess) > 1000) {
  42. lastprocess = get_sys_ticket();
  43. debug_led_state = !debug_led_state;
  44. port_debug_set(debug_led_state);
  45. }
  46. }
  47. void Delayms(__IO uint32_t nTime)
  48. {
  49. uint32_t TimingDelay = 0;
  50. TimingDelay = get_sys_ticket();
  51. // printf("nTime%d\r\n",nTime);
  52. while (port_haspassedms(TimingDelay) <= nTime);
  53. }
  54. #endif