реклама на сайте
подробности

 
 
> Непонятное поведение UART.
Oleg_IT
сообщение Jul 31 2007, 07:17
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



С UART работаю в импульсном режиме, инициализирую UART, работаю с ним и выключаю обнулением его регистров и инициализирую пины работающие с UART на выход DDR = 1, PORT = 0. Если я не включаю режим Power Save после того как отработал UART, то, между импульсами на пине TXD ноль, если режим сна включаю, то единица. Очень редко однократно бывает ноль.
Режим сна включаю так (IAR)
……………………
MCUCR |= (1 << SE);
__sleep();
MCUCR &=~ (1 << SE);

Почему так происходит и как сделать на этом пине гарантированный ноль?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GDI
сообщение Aug 1 2007, 08:02
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
UCSRA = 0x00;
UCSRB = 0x00;
UCSRC = 0x80;
UCSRC = 0x00;
Зачем такие сложности? Достаточно просто обнулить биты TXEN и RXEN в регистре UCSRB, т.е. просто записать так:
Код
UDSRB &= ~((1<<TXEN)|(1<<RXEN));
, а включать потом
Код
UDSRB |= ((1<<TXEN)|(1<<RXEN));
и не производить каждый раз настройку скорости, формата данных и прочего.

Кроме режима Idle есть еще другие режимы да PowerSave, например PowerDown, можно проверить еще и их.

И ещё, может стоит сделать какую то задержку между командами выключения УСАРТа и командами перехода в PowerSave, возможно что на выключение требуется какое то время, а в режиме PowerSave отключается тактовая портов, т.е. может проц, возможно, засыпает не успев сделать все процедуры останова УСАРТа, а в режиме Idle тактовая портов сохраняется, но это как версия.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 01:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016