Patrick Blanchard <address@hidden> wrote:
Yes, use a hardware timer. ;-) ...
Otherwise, have a look at the functions in <avr/delay.h>.
FWIW using the delay.h made more sense for me; easier code to
follow.
It eats up your CPU. Even if you don't have any other work for your
CPU while waiting, with a hardware timer, you could at least reduce
the overall power consumption by putting the CPU to sleep.
Sure, for really short delays, a spin-loop makes sense, but when
you want your LED to blink, just use it as a good example to get
acquainted with hardware timers (even though obviously, conserving
energy isn't the most important feature of a LED blinker ;-).
It's for some reason that even the very simple demo.c that accompanies
avr-libc uses a hardware timer.