AVR. Работа USART во время сна. Прошу совета.
Добавлено: Сб янв 07, 2012 02:45:24
Доброй ночи и с рождеством!
Собственно имеем МК mega48. В устройстве используется USART вместе с режимом сна ADC noise reduction. проблема в том, что МК большую часть своего времени оцифровывает сигнал и делает с ним что-то, выходя по прерыванию из сна "ADC noise reduction". В то же время к МК может придти байт по USART'у. Для того, что бы МК проснулся, ножка Rx соединена с INT0. Все прекрасно. МК просыпается, отключает ADC, и ждет пока завершится прием. Но. судя по всему из-за задержки на выведение из сна, происходит рассинхрон и МК получает мусор: в старшем разряде появляются 2-3 "левых" единицы (двоичное исчисление) и выходит байт как бы смещен вправо а пустота заполнена единицами
Каким способом этого можно избежать?
Собственно имеем МК mega48. В устройстве используется USART вместе с режимом сна ADC noise reduction. проблема в том, что МК большую часть своего времени оцифровывает сигнал и делает с ним что-то, выходя по прерыванию из сна "ADC noise reduction". В то же время к МК может придти байт по USART'у. Для того, что бы МК проснулся, ножка Rx соединена с INT0. Все прекрасно. МК просыпается, отключает ADC, и ждет пока завершится прием. Но. судя по всему из-за задержки на выведение из сна, происходит рассинхрон и МК получает мусор: в старшем разряде появляются 2-3 "левых" единицы (двоичное исчисление) и выходит байт как бы смещен вправо а пустота заполнена единицами
Каким способом этого можно избежать?