fork(2) download
  1. //-----------------------------------------------------------------------------
  2. #include <stdio.h>
  3. #include <inttypes.h>
  4. //-----------------------------------------------------------------------------
  5.  
  6. #define __IO
  7.  
  8. static uint32_t Ticks;
  9.  
  10. /// Debug version of HAL_GetTick()
  11. static uint32_t HAL_GetTick()
  12. {
  13. return Ticks++;
  14. }
  15.  
  16. //-----------------------------------------------------------------------------
  17.  
  18. #if 1
  19.  
  20. /// Original HAL_Delay() from CubeMX
  21. void HAL_Delay(__IO uint32_t Delay)
  22. {
  23. uint32_t timingdelay;
  24.  
  25. timingdelay = HAL_GetTick() + Delay;
  26. while(HAL_GetTick() < timingdelay)
  27. {
  28. }
  29. }
  30.  
  31. #else
  32.  
  33. /// Proposed HAL_Delay()
  34. void HAL_Delay(__IO uint32_t Delay)
  35. {
  36. uint32_t tt = HAL_GetTick();
  37.  
  38. while((uint32_t)(HAL_GetTick() - tt) < Delay)
  39. {
  40. }
  41. }
  42.  
  43. #endif
  44.  
  45. //-----------------------------------------------------------------------------
  46.  
  47. int main(int argv, char * argc[])
  48. {
  49. uint32_t temp;
  50.  
  51. Ticks = 0xFFFFFFE0;
  52.  
  53. temp = Ticks;
  54. HAL_Delay(10);
  55. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  56.  
  57. temp = Ticks;
  58. HAL_Delay(10);
  59. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  60.  
  61. temp = Ticks;
  62. HAL_Delay(10);
  63. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  64.  
  65. temp = Ticks;
  66. HAL_Delay(10);
  67. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  68.  
  69. temp = Ticks;
  70. HAL_Delay(10);
  71. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  72.  
  73. temp = Ticks;
  74. HAL_Delay(10);
  75. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  76.  
  77. temp = Ticks;
  78. HAL_Delay(10);
  79. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  80.  
  81. temp = Ticks;
  82. HAL_Delay(10);
  83. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  84.  
  85. temp = Ticks;
  86. HAL_Delay(10);
  87. printf("%" PRIu32 "\n", (uint32_t)(Ticks - temp));
  88.  
  89. return 0;
  90. }
  91.  
  92.  
Success #stdin #stdout 0s 2292KB
stdin
Standard input is empty
stdout
11
11
2
2
2
2
2
11
11