Easyelectronics.ru

Электроника для всех
Текущее время: 26 фев 2021, 02:45

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: помогите с Usart
СообщениеДобавлено: 10 фев 2010, 01:07 
Только пришел
Аватара пользователя

Зарегистрирован: 10 фев 2010, 00:54
Сообщения: 19
Откуда: Калуга
Здрасте, я делаю АЦП(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 USARTTransmit
mov temp,YH
rcall USARTTransmit
mov temp,XL
rcall USARTTransmit
mov temp,XH
rcall USARTTransmit
;========================================================
;=========================USART==========================
;@@@@@@@@@@@@@@@Podprogram@@@@@@@@@@@@
;==============Transmiting============(подпрограмма передачи)
USARTTransmit:
sbis UCSRA,UDRE
rjmp USARTTransmit
cbi UCSRB,TXB8
sbrc USART0,0
sbi UCSRB,TXB8
out UDR,temp
ret
Ну и вопрос то в том, будет ли у меня всё как я задумал, то бишь скорость 9600 борд, 2 стоп бита, 4 байта(8 бит) в пакете, Заранее спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите с Usart
СообщениеДобавлено: 10 фев 2010, 03:38 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:46
Сообщения: 125
Откуда: г. Буча, Киевская обл., Украина
Цитата:
Ldi temp ,0b00001011
out UCSRC,temp


Смотрим доку:
Bit 7 – URSEL: Register Select
This bit selects between accessing the UCSRC or the UBRRH Register. It is read as
one when reading UCSRC. The URSEL must be one when writing the UCSRC.

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

Bit 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 - у этих регистров немножко более важное предназначение есть, чем хранить в себе какие-то байтеги.

_________________
-||devil was an angel too||-
-||world is a ghetto||-


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB