Как сделать простую многозадачность на Си?
Можно написать планировщик
Нужно не писать планировщик, а хорошо поискать среди инструментов: что есть для вашего случая обеспечивающих параллелизм?
А задавая вопрос нужно начинать того, что это за микроконтроллер, и каким инструментом вы его собираетесь программировать.
Для ваших целей прекрасно подойдет FreeRTOS. Ее можно настроить и так, чтобы планировщик сам прерывал выполнения задач и переключался между ними, и так, чтобы задача сама отдавала управление планировщику, когда нужно. И еще всякие плюшки вроде FIFO, семафоров и т.д.
Оно собирается под любую платформу: от AVR до x86.