Цитата(KAlex @ Mar 31 2008, 11:54)

В программе все нормально. Если запретить прерывания от таймера на время обработки UDP - накаких проблем. Для меня в принципе это не критично, запрещаю. Но все таки интересно, почему им нельзя работать одновременно? Прием и передача по USB происходит аппаратно. По идее, никакие програмные действия на это влиять не могут. Однако же ...?
Влиять может многое.
Например компилятор, который криво обрабатывает выходы из прерываний или переходы между ARM/THUMB.
Или протокол обмена по USB может содержать внутри запреты прерываний с последующим ожиданием вашего таймера.
Часть функций может распологаться в озу и рекурсивный вызов некоторых функций может вызывать наползание стека на функцию.
Может влиять порядок инициализации таймера или USB, время между подачей частоты на перефирию и установка в ней регистров.
Даже банальные иголки от цепей подключенных к 50Гц.
Я прекрасно передавал в комп мегабит/с данных по протоколу MSD и при этом у меня один таймер дёргал ногу с частотой 3кГц (манчестер), а другой выдавал на внешнее оборудование 16кГц.