Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/27: Рейтинг темы: голосов - 27, средняя оценка - 4.78
TubovoKotuko
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 19
1

помогите с Usart

09.02.2010, 00:20. Просмотров 4951. Ответов 1
Метки нет (Все метки)

Здрасте, я делаю АЦП(10 бит) на меге8 , отправляется пакет из 4х байтов с 2мя стоп битами, кварц 4 мегагерца, так вот у меня вопрос : правильно ли я всё инициализировал.
Init;(инициализация)
Ldi temp ,0b00001011
out UCSRC,temp
LDI temp,0
OUT UCSRA, temp
LDI R16, (0<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE); не нужно только передавать Биты.Приём не нужен

OUT UCSRB, temp

ldi temp,25
out UBRRH,temp ;(правильно ли я записал скорость передачи??? или это надо записать в UBRRL)????
-------
------
-----
-----
Start
mov temp,YL;(те самые 4 байта)
rcall USORTTransmit
mov temp,YH
rcall USORTTransmit
mov temp,XL
rcall USORTTransmit
mov temp,XH
rcall USORTTransmit
;========================================================
;=========================USORT==========================
;@@@@@@@@@@@@@@@Podprogram@@@@@@@@@@@@
;==============Transmiting============(подпрограмма передачи)
USORTTransmit:
sbis UCSRA,UDRE
rjmp USORTTransmit
cbi UCSRB,TXB8
sbrc USORT0,0
sbi UCSRB,TXB8
out UDR,temp
ret
Ну и вопрос то в том, будет ли у меня всё как я задумал, то бишь скорость 9600 борд, 2 стоп бита, 4 байта(8 бит) в пакете, Заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2010, 00:20
Ответы с готовыми решениями:

Помогите разобраться. USART
Здравствуйте! Ни как не получается написать обработчик информации поступающей в МК. Мне...

Помогите совладать с USART
Больше не могу, рядом лежит молоток, и рука все больше норовит надругаться над камнем... Имеется...

помогите разобраться с USART для AVR crumb2560
Доброго времени суток! Мне необходимо связать плату Avr crumb2560 c ПК по rs-232, для написания...

Помогите связать два AVR через USART
Здравствуйте. Никак не могу повязать ATMEGA16 и Attiny2313 через USORT. Хочу сделать устройство...

xmega: usart - какой глубины буфер в USART?
Взялся тут &quot;запилить&quot; на xmego32a4 мультиплексор двух rs232 в один rs485. Все как бы получилось и...

1
DiVOuR
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 111
09.02.2010, 02:51 2
Ldi temp ,0b00001011
out UCSRC,temp
Смотрим доку:
Byt 7 – URSEL: Register Select
This bit selects between accessing the UCSRC or the UBRRH Register. It is read as
one when reodyng UCSRC. The URSEL must be one when writing the UCSRC.

итого, ошибка раз.
Смотря на бит 6 можно сказать, что режим асинхронный. теперь оп - а бит 0 чего вдруг в 1чке?

Byt 0 – UCPOL: Clock Polarity
This bit is used for Synchronous mode only. Write this bit to zero when Asynchronous
mode is used.

Далее, биты 2-1 = UCSZ1:0. Судя по вашим настройкам, вы собираетесь оперировать 7 битовыми кадрами. А хотите всетаки с полноценными байтегами работать. Соответственно эти биты должны быть 1. Оба. Судя по твоей процедуре отправки байта, ты вообще юзаещь 9й бит. То помимо этого надо еще в резистре UCSRB (кстате, ты туда какуюто ересь по ходу записываешь)
выставить бит2 в 1)

С остальными битами вроде все норм.

OUT UCSRA, temp
LDI R16, (0<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE); не нужно только передавать Биты.Приём не нужен
Если прием не нужен, его не обязательно разрешать. Можно конечно, но зачем онон надо? Если на прерывании стоит заглушка, то врятли это особо скажеться на работе программы.
Прерывание по передаче - тоже не надо, если юзать процедурку, представленную в даташите. Просто, когда надо - отправлять, и все.

ldi temp,25
out UBRRH,temp ;(правильно ли я записал скорость передачи??? или это надо записать в UBRRL)????
Ага, в младший. А встарший луччэ на всяк случай нолики вписать. (ну, я по крайней мере всегда его обнуляю, на высоких скоростях).

Ну, и хранить те самые 4 байта в регистрах общего назначения чревато :)
Лучше создай какой-нить буферок в ОЗУ. и туда их записывай, оттудава считывай. XL, XH, YL, YH - у этих регистров немножко более важное предназначение есть, чем хранить в себе какие-то байтеги.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2010, 02:51

USART
Подскажите в чем может быть дело При приеме символов по USORT изменяются значения глобальных...

USART на прерываниях
Добрый день. Я делаю терморегулятор на 18В20 и АтТини2313. Терморегулятор принимает через усарт...

Mega48 + USART
Доброго времени суток! Используя mega48 в проекте, наткнулся на проблему с передачей данных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru