Hello Claude,
I hope you are doing well!
If you want to avoid using a timer, you may want to use an empty loop with a nop assembly instruction, and be aware of the system clock frequency to approximate a delay.
In the MCUxpresso SDKs the OSA time delay it is implemented in the fsl_os_abstraction_bm.c, (if I am not wrong the KL36 does not have this file) for baremetal environtments.
I have seen that in several MCUxpresso SDKs this function ,at the end of the day, requires a timer (Systick). I am aware that you do not wish to implement a timer, but bellow is the function code for any reference.
void OSA_TimeDelay(uint32_t millisec)
{
#if (FSL_OSA_BM_TIMER_CONFIG != FSL_OSA_BM_TIMER_NONE)
uint32_t currTime, timeStart;
timeStart = OSA_TimeGetMsec();
do
{
currTime = OSA_TimeGetMsec(); /* Get current time stamp */
} while (millisec >= OSA_TimeDiff(timeStart, currTime));
If I can help further please let me know.
My apologies for the delay!
BR,
Diego.