systick using interrupts instead of blind wait