Agreed, but most 'multi-tasking' is in reality things like timing events, updating a display, reading switches or keypads, accepting and parsing serial messages, and generating other messages. These can easily be handled in an AVR so that a human sees all the tasks happening 'together', even though in fact they are all only sequential, through one processor.
I like Per's approach of assigning tasks in powers of 2 descending timing order. Never used it quite like that, but it sounds neat. Mostly I just use a counter, and count down, doing various things at different counter steps.
↧