Перейти к содержанию

Програмный UART atmega16


Atreides

Рекомендуемые сообщения

Добрый день. Мне требуется реализовать программный юарт на атмеге16. Он нужен для того, чтобы принятые по нему данные отправить на аппаратный юарт. В интернете нашел примеры кода, но понять его мне трудно. Прошу вас словами в общих чертах объяснить принцип реализации программного юарта. Буду рад примерам, которые, на ваш взгляд, являются наиболее простыми и понятными. Заранее спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Хм...
https://yandex.ru/search/?lr=2&clid=2063927&msid=1507717605.69763.22885.8805&text=USART интерфейс Просто множество статей с описанием интерфейса.
В чём конкретно проблема ? Что не понятно в интерфейсе ?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

6 часов назад, Alex сказал:

Хм...
https://yandex.ru/search/?lr=2&clid=2063927&msid=1507717605.69763.22885.8805&text=USART интерфейс Просто множество статей с описанием интерфейса.
В чём конкретно проблема ? Что не понятно в интерфейсе ?

Спасибо за ответ. Проблема в реализации программного (дополнительного) юарта на языке СИ на атмеге16, так как одного встроенного аппаратного не хватает для моих нужд. В интернете нахожу несколько статей с примерами, но большинство из них - сухой код, немного разбавленный комментариями. Я ни в коем случае не прошу написать мне готовый код, мне интересна сама логика рассуждений, которую я так и не могу усвоить: как работать с таймером, прерываниями и т.д. 

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Atreides сказал:

как работать с таймером, прерываниями и т.д. 

Ну уж эти то темы избитые до нельзя. В интернете просто огромная куча статей и примеров по таймерам, прерываниям и прочей периферии.

Ссылка на комментарий
Поделиться на другие сайты

Только что, Alex сказал:

Ну уж эти то темы избитые до нельзя. В интернете просто огромная куча статей и примеров по таймерам, прерываниям и прочей периферии.

имеется ввиду применение данных модулей в рамках реализации моей задачи. Спасибо за ответ.

Ссылка на комментарий
Поделиться на другие сайты

Если вкраце. Ловим прерывание по первому спадающему фронту (начало старт-бита), запускаем таймер на полбита, запрещаем внешнее прерывание. В прерывании от таймера перестраиваем его на время в один бит и начинаем считать биты до 9, ловя каждый раз прерывание по таймеру и считывая состояние ПИНа в переменную. На последнем бите отрубаем прерывание по таймеру и разрешаем внешнее прерывание (для начала следующего байта). Байт принят.
И так принимаем каждый байт по-очреди.

Ссылка на комментарий
Поделиться на другие сайты

В 11.10.2017 в 23:09, Alex сказал:

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

почему на полбита если можно полтора?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, COKPOWEHEU сказал:

полбита

Через полбита убеждаемся, что стартовый ноль всё ещё присутствует на входе. Если нет, то завершаем процедуру без приёма байта - ложное срабатывание по INT. Получается некая защита от импульсных помех на входной линии.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...