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

 
 
> UART в меге 128, Это так и должно быть?
VladimirYU
сообщение Feb 16 2009, 07:16
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Почему при чтении из UART mega 128?

Код
[/code]
BYTE result = UDR;
[code]


Все хорошо, а
Код
[/code]
BYTE result = UDR;
result = UDR;
[code]


все плохо, нигде в DS не нашел, что нельзя два раза подряд читать UDR.
Результат втрого чтения какая то фигня. Это так и должно быть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
_Pasha
сообщение Feb 16 2009, 07:23
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(VladimirYU @ Feb 16 2009, 10:16) *
Результат втрого чтения какая то фигня. Это так и должно быть?

Конечно: он же с двойной буферизацией

Цитата
A second buffer register has been added. The two buffer registers operate as a circular FIFO buffer. Therefore the UDR must only be read once for each incoming data! More important is the fact that the error flags (FE and DOR) and the ninth data bit (RXB8) are buffered with the data in the receive buffer.



Такшта, перед UDR рекомендуется еще и статус почитать. 
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Feb 16 2009, 07:30
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(VladimirYU @ Feb 16 2009, 10:16) *
Результат втрого чтения какая то фигня. Это так и должно быть?

Что за фигня? По какому критерию оценивается, фигня или нет?
Вообще УАРТ в мегах организован как очередь, поэтому при первом чтении вы снимаете значение с верхушки, при втором - получаете следующее значение.

Во втором случае вы теряете значение с верхушки очереди, т.к. нигде его не используете, а при повторном чтении UDR получаете уже следующее значение


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Feb 16 2009, 07:38
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(_Pasha @ Feb 16 2009, 10:23) *
Therefore the UDR must only be read once for each incoming data!  

Да налетел случайно
_Pasha a14.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 30th June 2025 - 18:07
Рейтинг@Mail.ru


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