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

Как в симуляторе "принять" байт по UART?

18.11.2012, 01:24. Просмотров 3404. Ответов 6
Метки нет (Все метки)

Всем привет! Вопрос такого плана... Как в симуляторе студии "принять" байт по UART? Т.е. например надо отладить прерывание по приему, а для этого надо как бы закинуть гипотетический байт в приемник. Чета я никак не могу понять как это сделать. С передатчиком проблем никаких, а с приемником вот застрял...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2012, 01:24
Ответы с готовыми решениями:

Принять через uart байт и записать его в память
Вобщем, если верить преподавателю, этот код надо немного переделать для желаемого эффекта .device...

Принять данные по UART, начиная с указанной позиции
Приветствую! Работаю в AtmelStudio 7 с мк Atmega8 Как можно организовать получение данных с...

передача по UART 8 байт
Добрый день всем! Задача такая: - передать 8 байт в контроллер - распределить по регистрам -...

Передача 4 байт по UART через прерывание
Пробую передать четыре байта по UART из прерывания. При первой попытки байты передаются нормально...

MS Comm как принять 1 байт
Поставил заворот (прд.-прм.) посылаю 1-14 байт(символов) не принимает как только посылаю 15 байт...

6
kytikot
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
18.11.2012, 01:47 2
Делаешь паузу в симуляции.
Выставляешь нужные биты во входном регистре UARTа, в регистре типа "буфер приема заполнен" и в регистре прерываний. Короче, читаем даташит на тему регистров, задействованных в UARTe - и выставляем их в студии. Потом шагаешь в симуляторе.
0
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
18.11.2012, 01:55 3
Цитата Сообщение от yr0407
... Как в симуляторе студии "принять" байт по UART? Т.е. например надо отладить прерывание по приему, а для этого надо как бы закинуть гипотетический байт в приемник. ...
Я просто эмулирую наступление события прерывания Rx Complete. Это значит, что в приемнике собрался байт и пора бы его обработать. Для этого жмем на чек- бокс RXC (бит 7 в регистре UCSRA), и через шаг попадаем в подпрограмму обработки прерывания.

Там прошагиваем сохранение регистров в стеке до строчки типа
Код
in tmp1_r,UDR         ;Считать байт из регистра данных приемника
Естественно, выполнив этот шаг, получим 0x00 во временном регистре, ибо мы ничего не принимали. Щелкаем на tmp1_r (у меня это R19) и вписываем в него нужное принятое значение.

Как- то так.
0
kytikot
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
18.11.2012, 01:58 4
Еще круче - нарисовать схему в Протеусе, с виртуальным терминалом.
Внедрить в Студию плагин Proteus VSM.
Запустить Студию на отдадку, используя как платформу этот самый Proteus VSM.
И вводить на экране виртуального терминала нужные символы и отлаживать в студии.

Только там есть такой момент... Если что-то подзависнет, или вывалится "по аборту" - то виртуальыйн терминал останется висеть в системе процессом и может мешат далее.
0
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
18.11.2012, 02:01 5
Вопрос-то был про симулятор студии.
0
kytikot
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
18.11.2012, 02:08 6
Я и говорю про симулятор Студии.
Только с отладочной платформой Proteus VSM.

Очень удобно отлаживать схемы с UART, кнопками, дисплеями и прочими интерактивными устройствами.

0
yr0407
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 51
18.11.2012, 06:17 7
Огромное всем мерси... :) Про эмуляцию события я и сам подумал, но мне кажется несколько геморно это и не кошерно. А вот в сторону Proteus VSM я как-то и не подумал, хотя в курсе на счет этой возможности. Еще раз спасибо за помощь.
0
18.11.2012, 06:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2012, 06:17

Как через serialport принять неизвестное количество байт
как через serialport принять неизвестное количество байт

Принять массив байт с \0 в середине
Глупый вопрос. Клиент передает несколько строк ASCII с \0 в конце в одном массиве байт. Первый байт...

Принять массив байт через сокет
Добрый вечер.. Есть соединение на сокетах. С сервера идут сообщения по 8 байт. Как их принимать...


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

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

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