AVR-Ada provides basically two ways to delay the code execution.
One way is busy looping using Generic_Busy_Wait_Seconds and Generic_Wait_USecs procedures from the AVR.Wait package.
procedure My_Wait is new AVR.Wait.Generic_Busy_Wait_Seconds (Crystal_Hertz => 16_000_000); procedure Wait_1000ms is …[more]