Tcom 0 17 мая, 2007 Опубликовано 17 мая, 2007 · Жалоба Вот разработал я устройство, написал программу, всё работает. НО! Смысл в чём, по переполнению таймера 1 выполняется подпрограмма анализа состояния размыкателей. На прерывании по приему байта по UART , устройство передаёт свои значения, которые насобирали за определенный период, а теперь вопрос. Почему когда МК передаёт данные в UART, не работает прерывание от таймера, меня на 100% устраивает то, что передача будет прерываться. Главное для меня не пропустить захват события обрабатываемое прерыванием от счётчика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 17 мая, 2007 Опубликовано 17 мая, 2007 · Жалоба Вот разработал я устройство, написал программу, всё работает. НО! Смысл в чём, по переполнению таймера 1 выполняется подпрограмма анализа состояния размыкателей. На прерывании по приему байта по UART , устройство передаёт свои значения, которые насобирали за определенный период, а теперь вопрос. Почему когда МК передаёт данные в UART, не работает прерывание от таймера, меня на 100% устраивает то, что передача будет прерываться. Главное для меня не пропустить захват события обрабатываемое прерыванием от счётчика. 1. Без специальных мер вложенные прерывания запрещены, т.е. во время одного прерывания другое произойти не может. Но есть в принципе влияние двух процессов друг на друга возможно. 2. Но! Если все написано правильно, то оно, как правило, не происходит. Это еще нужно умудриться так закодировать, чтобы несложные процессы влияли друг на друга, поскольку задержка выполнения одного из прерываний обычно незначительна. Так что объясняйте, как Вам это удалось? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 17 мая, 2007 Опубликовано 17 мая, 2007 (изменено) · Жалоба Dog Pawlowa опередил с ответом. :) 1. Посмотрите, что у Вас в прерывании по UART происходит. 2. Какой период работы таймера и сколько времени от периода длится прерывание. Может быть у Вас частые прерывания и контроллер на пределе возможностей. В этом случае пропуск прерываний по таймеру неизбежен при обработке других прерываний. Изменено 17 мая, 2007 пользователем mdmitry Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirYU 0 17 мая, 2007 Опубликовано 17 мая, 2007 · Жалоба Вот разработал я устройство, написал программу, всё работает. НО! Смысл в чём, по переполнению таймера 1 выполняется подпрограмма анализа состояния размыкателей. На прерывании по приему байта по UART , устройство передаёт свои значения, которые насобирали за определенный период, а теперь вопрос. Почему когда МК передаёт данные в UART, не работает прерывание от таймера, меня на 100% устраивает то, что передача будет прерываться. Главное для меня не пропустить захват события обрабатываемое прерыванием от счётчика. Приоритеты можно рганизовать программно, например, в процедуре обработки от одного источника запретить прерывания от источников с меньшим приоритетом, разрешить с большим и сделать глобальное разрешение. Но делать это нужно очень аккуратно, следить за стеком и обеспечить перед выходом корректное восстановление всех разрешений запретов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IEC 1 17 мая, 2007 Опубликовано 17 мая, 2007 · Жалоба Привходе в прерывание сбрасывается флаг разрешения прерывания, при выходе из прерывания он восстанавливается. Для того чтобы сделать вложенное прерывание: в обработчике прерывания от УАПП программно устанавливайте флаг разхрешения прерывания. Тогда, если при обработке прерывания от УАПП возникнет прерывание от таймера, то программа передаст управление на его обработчик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tcom 0 17 мая, 2007 Опубликовано 17 мая, 2007 · Жалоба Респект IEC !! Я забыл про эту фишку всё заработало спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться