Помогите, пожалуйста.
Ситуация следующая: на базе примера LwIP для rowley из пакета FreeRTOS разрабатываю свою програму. Одна из основных её задач вывод в порт SPI данные из памяти кристала с заданным периодом. Я организовал это с помощью timer/counter используя прерывание по сравнению с регистром С таймера. Задавая значение регистра C от 400 до 4000 при тактировании таймера в половину частоты ядра (48 МГц) я по прерыванию выбрасываю с помощью DMA 6 значений в порт. Так при значении регистра 700 я, приблизительно, получаю 30 000 посылок в секунду. Прерывание таймера я поставил с приоритетом 7 и понизил прерывание тиков FreeRTOS до 6. То-есть моё прерывание должно бы обрабатываться в первую очередь. В самом прерывании минимум действий - передача данных из памяти в буфер, запуск передачи через DMA и выход. Паралельно исполняються ещё три задачи (две по работе с USB) и одна по выводу картинки на LCD экранчик (у меня плата разработчика Olimex).
Проблема в том, что когда я смотрю осцилографом сигнал на выходе ножки выбора чипа SPI я вижу четкие импульсы с периодом 100 мкс, но, при этом, также видно слабое мельтешение импулься на фоне в диапазоне приблизительно +-20мкс. То-есть, иногда, период не соблюдается, при этом, при весьма ощутимом разбросе. В чём могла бы быть проблема? Как это можна побороть?