Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SAM7X USART interrupt
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
piz2383
В общем написал программку, которая по прерыванию от USART RX пишет данные в FIFO. А я в теле своей программы читаю от туда.
В общем на скорости 9600, данные приходят корректно, но вот уже на скорости 19200, данные начинают теряться? Чем это вызвано? Латентностью прерывания? Или ещё чем-то?
aaarrr
Цитата(piz2383 @ Jul 5 2009, 00:45) *
Чем это вызвано?

Чтобы ответить на этот вопрос, нужно как минимум видеть обработчик и знать, чем еще загружен процессор.

При нормальном раскладе, когда прерывания не запрещаются на длительный период времени и обработчики выполняются быстро, прием и 19200 и 115200 проблем не вызывает.
Но лучше, конечно, использовать PDC.
DpInRock
Проверьте. Предположу, что данные у вас теряются всегда. Только на большой скорости вы это намного раньше замечаете.
А, ну еще сделайте все прерывания вложенными. Если вдруг какое из них задерживает надолго.
head_sk
Мнение однозначное, обработчик прерывания выполняеться слишком долго, при малой скоросте, он успевает обработать, а при большой нет. Обработчик прерывания неодходимо писать по возможности максимально коротким.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.