time.cpp 456 B

12345678910111213141516
  1. #include "all-headers.h"
  2. static void startSystick (BOOT_MODE) {
  3. SYST_RVR = CPU_MHZ * 1000 - 1 ; // Underflow every ms
  4. SYST_CVR = 0 ;
  5. SYST_CSR = SYST_CSR_CLKSOURCE | SYST_CSR_ENABLE ;
  6. }
  7. MACRO_BOOT_ROUTINE (startSystick);
  8. void busyWaitDuring (USER_MODE_ const uint32_t inDelayMS) {
  9. const uint32_t COUNTFLAG_MASK = 1 << 16 ;
  10. for (uint32_t i = 0; i < inDelayMS; i++) {
  11. while ((SYST_CSR & COUNTFLAG_MASK) == 0) {} // Busy wait, polling COUNTFLAG
  12. }
  13. }