Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не устанавливается флаг RXC0
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
koluna
Зравствуйте!

В функции обработки прерывания по приёму байта от UART после приёма одного байта не устанавливается флаг RXC0 микроконтроллера (ATmega88, WinAVR).

do
{
// всякая ерунда
}
while (!(UCSR0A & (1 << RXC0)));

Т. е., не выходим из цикла!!!
Байты точно доходят до МК.
Приём не запрещал...

Почему?

Спасибо!
Сергей Борщ
Цитата(n_bogoyavlensky @ Apr 30 2008, 14:04) *
Приём не запрещал...
Тогда покажите, как вы его разрешали, т.е. всю инициализацию USART. И покажите функцию обработки прерывания. Это вы в прерывании в цикле крутитесь?
vet
проверять флаг приёма символа в прерывании по приёму символа - странная идея.
koluna
Цитата(vet @ Apr 30 2008, 16:44) *
проверять флаг приёма символа в прерывании по приёму символа - странная идея.


Пришедший байт - "Стоп" для работы. Т. е., по нему мы должны выйти из цикла.
До этого был уже принят один байт - байт команды smile.gif

Вопрос снимается.
Это мой глюк. Совсем не в прошивке контроллера.
Спасибо за помощь всем!

Цитата(Сергей Борщ @ Apr 30 2008, 16:27) *
Тогда покажите, как вы его разрешали, т.е. всю инициализацию USART. И покажите функцию обработки прерывания. Это вы в прерывании в цикле крутитесь?


RXEN устанавливал. Всё принимается!
Функция обработки прерывания у меня просто огромна! smile.gif
В прерывании в цикле кручусь. Это плохо?
mdmitry
Цитата(n_bogoyavlensky @ Apr 30 2008, 17:01) *
В прерывании в цикле кручусь. Это плохо?

В зависимости от того, что делаете может быть и плохо.
Цикл в прерывании блокирует какие-либо другие действия пока из него не выйдите. А если цикл стал бесконечный? smile.gif
Я делаю короткие прерывания по мере возможностей. Сделал необходимое и возвратился к выполнению основной программы. В основной программе можно и циклы на ожидания флагов поставить при необходимости.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.