|
1 / 1 / 0
Регистрация: 28.02.2019
Сообщений: 18
|
|
Вывести сообщение в терминал на компьютер, подключенный к мк C8051F060 по UART15.02.2020, 12:11. Показов 4878. Ответов 28
Метки нет (Все метки)
Всем привет и спасибо сразу за уделенное время.
Задание: Дана IDE Silicon labs схема от них же с семейством 8051, МК 060. Необходимо написать программу на асемблере, которая выведет сообщение в терминал на компьютер подключенный к мк по UART. Если кратко обычный Hello world. Я профан в этом деле, прочитав документацию я понял что нужно выбрать банк регистров, выбрать режим для uart и правильные частоты, но как это сделать в коде я не понимаю. Большое спасибо, что дочитали.
0
|
|
| 15.02.2020, 12:11 | |
|
Ответы с готовыми решениями:
28
UART терминал +игра avRacer UART терминал из старого КПК
|
|
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||
| 24.02.2020, 01:12 | ||
|
Ну а в данном конкретном случае надеюсь у вас не осталось сомнений в бесполезности и даже вредности использования поллинга вместо работы через прерывание?
0
|
||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
||||
| 24.02.2020, 10:37 | ||||
.
0
|
||||
|
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
|||
| 25.02.2020, 03:35 | |||
|
А потом этот новичок будет утверждать что только с поллингом у него получилось хоть как-то сделать. Но почему только так он смог, он и сказать вразумительно не сможет. Разве что только сможет ссылаться на "волшебное аглицкое слово" latency. Ну и на то что "прерывание оно такое знаете ли, там ведь и фазы выполнения неведомых операций и ещё чёрт знает что". ![]() Добавлено через 2 минуты
0
|
|||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|||
| 25.02.2020, 17:10 | |||
|
0
|
|||
|
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||||||||
| 26.02.2020, 04:14 | ||||||||
|
Но вы падение производительности как оценивали? Вот мой переработанный пример для сохранения/восстановления контекста (с временнЫми характеристиками C80510F060)
P.S. В данном коде сохранено всё, что нужно было сохранить (и даже более) и всё восстановлено. Добавлено через 26 минут ![]() Если не я, то нате вам с кисточкой работающий проект и идите лесом на север. Конечно проект будет с комментариями и с документацией. Но расширять его уже не моё дело. С учёбой несколько иное. Имхо не надо всегда давать только упрощенные решения. Тем более на интернет-ресурсе. Этот топик могут читать ещё многие люди и многие годы.
0
|
||||||||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
||||
| 26.02.2020, 16:10 | ||||
|
Во-первых, вы в коде не обеспокоились о регистре R0 - для кода вне прерывания он будет безвозвратно потерян. Во-вторых, с pipe-line'ом все не так просто. К сожалению, я не нашел подходящей картинки, но... первая команда (PUSH A в вашем коде) выполняется больше чем за 2 такта, потому что перед ними идет загрузка пайплайна. При джампе - (CJNE R0,#255) - будет не 3, а 4 клока, и пайплайн снова должен перегрузиться (на инструкции INC R0). PS: я могу быть не прав, потому что не вникал непосредственно в pipeline cip51, но я знаю, что "производительность" из ниоткуда не берется. И это никакое не волшебство а процессор, имеющий всегда все свои фазы, от которых никто еще не ушел (на практике). А так да - обработчик на бодрейте 921600 потребует в системе дополнительные 10% времени ЦП (я думаю больше, учитывая сомнения в pipeline'е), по сравнению с решением поллингом. В принципе это не важно, учитывая, что речь идет о локализованном решении (Hello world). Если решение не локализованное, требуется перегрузка буфера, и буфер этот не просто буфер, а FIFO - все станет на свои места, и производительность в поллинге еще более станет очевидна. Добавлено через 11 минут Не по теме: Экономически обоснованные решения всегда выглядят проще, чем максимально возможные. Не потому что исполнитель не может сделать "лучше". А потому что "лучше" стоит "дороже". И этому, кстати, даже меня учили, очень давно. Кликните здесь для просмотра всего текста
На очередной олимпиаде (студенческой) было задание - написать программу парсящую формулы, со скобками и знаками +-/*. Все, казалось бы, стандартно. Я написал рекурсию, отладил. Проверил. Но в задании вложенность была ограничена - (примеры были только с двумя вложенными скобками), и при проверке проги - экзаменующий ввел правильное выражение, имеющее утроенную вложенность. В итоге моя прога посчитала правильно, но экзаменатор поставил на тесте "минус", что означало, что тест не пройден. Как выяснилось - мне нужно было догадаться, что вложенность должна быть ограничена, потому что нет таких примеров, которые были бы вынесены в задании как правильные. И как вы понимаете, учитывая это, задачу можно было бы решать как-нибудь проще...
PS: это я к тому, что "теоретические" истины бездонны. И копать можно так глубоко, как можешь, но денег платят лишь за задачу.
0
|
||||
|
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||||||||||
| 27.02.2020, 02:49 | ||||||||||
Эта инструкция включает третий банк R-регистров. В теле основной программы я обычно использую нулевой банк. Добавлено через 45 минут
0
|
||||||||||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
||||||||||
| 27.02.2020, 11:05 | ||||||||||
. Сам факт pipeline'а описан в ДШ, и "загружается" он, и все фазы процессора остаются на месте.
ну, то есть 4 такта LCALL + 1 такт на реакцию на прерывание. Я не оппонирую случаем описанным в ДШ (18циклов interrupt latency), потому что к приведенной задаче он отношения не имеет. . у вас есть? Тогда расшарьте.Это никакие не сложности, но код будет выглядеть больше, чем сейчас, соответственно, в поллинге этих проблем просто нет, потому что FIFO особо и не нужен. А с прерываниями хендлер усложнится и увеличится время его обработки. Добавлено через 4 минуты Не по теме: не переживайте, выводы сделаны на основе знания других платформ (со стороны электроники, а не программирования) :). Хотя, в AVR тоже нигде не говорится о загрузке pipeline'а, и я всегда считал производительность согласно тактам инструкций, указанным в ДШ. По сему, скорее всего я напрасно засомневался в оптимальности фаз пайпов в CIP51. Мне казалось, что из 12ти тактов 8051 сделать 1 такт через pipeline просто невозможно, не меняя instruction set.
0
|
||||||||||
|
1 / 1 / 0
Регистрация: 28.02.2019
Сообщений: 18
|
||||||
| 03.03.2020, 15:01 [ТС] | ||||||
|
Снова, всем привет. Я сделал то что было необходимо.
На изображении сама плата с мк подключена к ком порту, для работы еще необходима программа teraterm которая будет прослушивать ком порт к которому мы подключены. Еще было необходимо "заклеить" пины j6 и j9 - для чего см. документацию
0
|
||||||
| 03.03.2020, 15:01 | |
|
Помогаю со студенческими работами здесь
29
Передача данных c МК51 по UART и вывод в терминал Как формировать столбцы символов в системе терминал(ПК) -- UART (МК Atmega128) Как вывести сообщение на виртуальный терминал. Си. AVR
Не пингуется компьютер подключенный к Wi-Fi Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
|