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

 
 
> Помогите забодать UART, at90s2313, 5 MHz кварц
M_A
сообщение Sep 21 2005, 13:16
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 27-12-04
Из: г. Иркутск
Пользователь №: 1 689



Указанная выше железяка получает от компа через преобразователь из +-12 в ТТЛ постоянно с периодом неск. милисекунд один и тот же байт, который благополучно доходит до ноги RXD контроллера (проверял осцилом). Я сделал прогу, которая при получении чего-то отличного от нуля должна дрыгать ногой контроллера. Результат - нога постоянно в 1. BaudRate на компе и контроллере совпадают (9600). Я думаю я по неумению неправильно настроил UART контроллера. Посмотрите плз, чего не так. Или посоветуйте чего-нить, у меня варианты кончились, и чтение даташита ничего не дает.... мож плохо читаю... Заранее благодарен!!!
Код
.include "2313def.inc"
.def data = r16
.def baudrate = r17
ldi r18, 0b00010000    
out UCR, r18          ;выставляю бит RXEN (Reciever enable)
ldi r18, 0b01000000  ;
ldi r19, 0b01000000  ;два одинаковых регистра, будут нужны для вывода
out DDRD, r18        ;говорю седьмой ноге порта D что она будет выходом
ldi baudrate, 32      ;9600 at 5 MHz посчитал по формуле из даташита...
out UBRR, baudrate    ;...и записываю в Baud Rate Register

recieve:
in data, UDR              ;считываю значение регистра данных UARTа
ser r20                  ;далее проверяю, получил ли чего-нить
ser r21                  ;r20 = r21
eor r21, data            ;если в data что-то было, r21 изменится...
and r20, data            ;...и станет не равно r20...
brne troggle              ;...и произойдет прыжок на переключение ноги
rjmp recieve              ;а если останется равно, значит data = 0, повторяем считывание

troggle:                    ;дрыгалка для ноги

eor r18, r19                ;переключаю состояние r18
out PORTD, r18              ;и сбрасываю на выход

rjmp recieve                ;и все поновой...
.exit
Go to the top of the page
 
+Quote Post



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

 


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


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