|
1 / 1 / 0
Регистрация: 28.02.2019
Сообщений: 18
|
|
Вывести сообщение в терминал на компьютер, подключенный к мк C8051F060 по UART15.02.2020, 12:11. Показов 4921. Ответов 28
Метки нет (Все метки)
Всем привет и спасибо сразу за уделенное время.
Задание: Дана IDE Silicon labs схема от них же с семейством 8051, МК 060. Необходимо написать программу на асемблере, которая выведет сообщение в терминал на компьютер подключенный к мк по UART. Если кратко обычный Hello world. Я профан в этом деле, прочитав документацию я понял что нужно выбрать банк регистров, выбрать режим для uart и правильные частоты, но как это сделать в коде я не понимаю. Большое спасибо, что дочитали.
0
|
|
| 15.02.2020, 12:11 | |
|
Ответы с готовыми решениями:
28
UART терминал +игра avRacer UART терминал из старого КПК
|
|
пофигист широкого профиля
4770 / 3206 / 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 / 3206 / 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 / 3206 / 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 / 3206 / 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|