ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
214675 Топик полностью
Dir (07.10.2010 17:38 - 18:13, просмотров: 102) ответил megajohn на вот у меня такая самописанная каруселька. Но есть одно но: к примеру есть одна задача - софтовое ногодрыганье с частотой допустим 1мс, и вторая задача у в которой надо сделать scanf/printf (и время на это потребуется 10мс ). Вот и фигня
Не вижу проблем.  Делаете одно прерывание - системный тик с периодом, например, 100мкс. Этого достаточно, чтобы без ошибок принять / (без пропусков передать) по UART со скоростью 115,2кбит/с. Или обновить все ноги PIO. Все же что нужно принять/передать/обновить подгоняете/забираете через кольцевые буфера. Есть практические примеры параллельной работы МК с 5 UARTами на скорости 115200, да еще и 2 PID- регулятора работают (температура и расход) и протоколы по всем 5 UARTам разбираются, GUI на QVGA работает без неравномерностей и ничего не теряется. PS. Желательно, чтобы цикл выполнения всех задач вмещался в период прерывания, чтобы не было временных блокировок. Если какие-то задачи занимает больше времени, их надо дробить на циклы, которые будут выполняться при последовательных проходах карусели. Понятно, что не все стандартные функции в таких программах можно использовать. Например, тот же printf. Но так ли он необходим?