#pragma once

#include <stdint.h>

void busyWaitDuring_initMode (INIT_MODE_ const uint32_t inDelayMS);

void busyWaitDuring (USER_MODE_ const uint32_t inDelayMS);

void busyWaitUntil (USER_MODE_ const uint32_t inDeadLineMS);

// Prevent default SysTick interruption code generation
//$interrupt-section SysTick

void systickInterruptServiceRoutine (SECTION_MODE) asm ("interrupt.section.SysTick");

uint32_t millis(ANY_MODE);

uint32_t systick(ANY_MODE);