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

 
 
> ATMEGA_168 !, UDR0 не прочитать
anton234ff
сообщение Nov 23 2009, 12:23
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 8-08-09
Пользователь №: 51 791



помогите студенту!прога передает из терминала код в Мегу.от нее требуется принять код,декодировать и выдать в цапу.отлаживаю в AVRStudio.имитирую прерывание завершения приема и пытаюсь прочитать UDR0.код куда-то теряется.может какая тонкость есть при чтении именно из UDR?????
инициализация:

;ЗАДАЕМ ПАРАМЕТРЫ КАДРА
ldi r16,0b00000110
sts UCSR0C,r16

ldi r16,0B10011000
sts ucsr0b,r16


sei

;обработка прерывания по завершении приема


usart_rx:




;ЧТЕНИЕ ИЗ БУФЕРА В Р22


lds r22,udr0




и все тут катится...UDR просто очищается и ничего никуда не пишет 07.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
stells
сообщение Nov 23 2009, 12:52
Сообщение #2


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(anton234ff @ Nov 23 2009, 15:23) *
lds r22,udr0

in r22,udr0

Цитата(anton234ff @ Nov 23 2009, 15:23) *
ldi r16,0b00000110
sts UCSR0C,r16

ldi r16,0B10011000
sts ucsr0b,r16

sts тоже надо на out заменить
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 23 2009, 13:03
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(stells @ Nov 23 2009, 14:52) *
in r22,udr0
sts тоже надо на out заменить

доступ к регистрам UART0 можно делать только через LDS/STS, т.к. USART0 лежит выше I/O области:

Код
адрес  регистр
(0xC6) UDR0
(0xC5) UBRR0H
(0xC4) UBRR0L
(0xC2) UCSR0C
(0xC1) UCSR0B
(0xC0) UCSR0A


причина в чем-то другом.

Цитата
и все тут катится...

бод-рейт задали?
и отладчиком UDR0 не читайте!
Go to the top of the page
 
+Quote Post
stells
сообщение Nov 23 2009, 13:14
Сообщение #4


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(defunct @ Nov 23 2009, 16:03) *
доступ к регистрам UART0 можно делать только через LDS/STS, т.к. USART0 лежит выше I/O области:

да, действительно, не посмотрел
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 20:46
Рейтинг@Mail.ru


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