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

ATMEGA16 - прием по UART в буфер числа от 0 до 255 Ассемблер

09.06.2019, 18:11. Просмотров 886. Ответов 3
Метки нет (Все метки)

Добрый день!

Не могу понять, подскажите пожалуйста куда копать.
Необходимо принимать по UART числа от 0 до 255.
Например пишем в терминале 100 и данное число ложиться в регистр R17.

Есть код который принимает байт, т.е. при запуске кода, он принимает но только или 1 или 0 или 0 а надо 100
На Си смог реализовать на ассемблере не могу.

Assembler
1
2
3
4
5
uart_rcv:   
SBIS    UCSRA,RXC   ; Ждем флага прихода байта
RJMP    uart_rcv            ; вращаясь в цикле
IN  R17,UDR     ; байт пришел - забираем.
RET                 ; Выходим. Результат в R17
Подскажите пожалуйста куда копать.

Заранее благодарю.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2019, 18:11
Ответы с готовыми решениями:

Прием данных на пк с UART, ATMEGA16
Здравствуйте, не работает прием данных на пк, они не выводятся в TEXTBOX. Отправка с самого МК...

421 cannot connect to SMPT server 255.255.255.255 (255.255.255.255:25)
Добрый день! при вызове bool mSocket::Connect(int port,char* adr) { hostent* hn; ...

UART и atmega16
Здравствуйте. Весь день бодаюсь с такой проблемой. Решил поуправлять мегой с компа. В качестве...

Массив: Вычислить сумму элементов, лежащих на главной диагонали матрицы {Cÿ}, образованной следующим образом: Cÿ = aÿ + bÿ
Здравствуйте, дорогие форумчане!;) -------------------------------------- Помогите, пожалуйста,...

Atmega16 и FT232 UART
Здравствуйте, почему не хочет работать UART. При отправке на мк "1" на порт В должен подаваться...

3
Ethereal
7285 / 2134 / 290
Регистрация: 17.02.2013
Сообщений: 3,137
09.06.2019, 19:50 2
Лучший ответ Сообщение было отмечено sysoerl как решение

Решение

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        CLR     R16         ;Обнулим R16
LOOP:   SBIS    UCSRA,RXC
        RJMP    LOOP
        IN      R18,UDR
        CPI     R18,0Dh     ;Возврат каретки ?
        BREQ    DONE        ;Если да - ввод числа завершен
        MOV     R17,R16     ;Умножим R16 на 10
        ADD     R17,R17
        ADD     R16,R17
        ADD     R16,R17
        ADD     R16,R16
        SUBI    R18,30h     ;Вычтем ASCII код нуля
        ADD     R16,R18     ;Прибавим к R16 цифру
        RJMP    LOOP
 
DONE:   ;R16 - введенное число
1
sysoerl
1 / 1 / 0
Регистрация: 11.06.2011
Сообщений: 48
10.06.2019, 05:38  [ТС] 3
Ethereal, благодарю.
Сегодня после трудового дня буду разбираться.
0
sysoerl
1 / 1 / 0
Регистрация: 11.06.2011
Сообщений: 48
16.06.2019, 11:08  [ТС] 4
Ethereal, еще раз благодарю.
Все получилось, я бы так не смог. Спасибо.
0
16.06.2019, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2019, 11:08

Atmega16, модуль UART
Народ кто внесет ясность? Спаял преобразователь usb-uart на ftdi232rl. Написал простейший код на...

АЦП+ UART на ATmega16: проблемы
Добрый день. Имеются следующие проблемы. 1. При попытке наладить передачу значения АЦП по UART...

ATmega16 проблема с передачей данных по UART
Хочу настроить связь ATmega16 и обычного компьютера, через UART. Для работы с UART использовал...


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

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

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