Peotr

Проблема с программированием ADuC845, вывод данных через UART

1 сообщение в этой теме

Peotr    0

Уважаемые знатоки!
Есть задача вывода данных из ADuC845 на монитор ПК (с помощью UART)
Приобрёл отладку Eval ADuC845, к ней есть куча умных примеров, в т.ч. код UART2 (попробую приложить). Приложенный код работает "на ура", но мучает нюанс: в блоке инициализации стоит: MOV SCON,#52h, что приводит к установке в "1" флага TI, который, согласно datasheet, устанавливается АППАРАТНО! Пробовал заменить на MOV SCON,#50h - полный крах! Объясните несведущему влияние ручной установки АППАРАТНО УСТАНАВЛИВАЕМОГО ФЛАГА TI!
Эт первое.
Второе. Понадобилось мне изменить синхронизацию UART вместо Т3 на Т2. И опять полный крах! Где я сбаранничал, подскажите, знатоки!
В приложенном рабочий код исправлен на использование Т2, а исходные фрагменты "заремлены" (;) (исправления только в MAIN до слова START).

С П А С И Б О !

 

UART2.docx

Поделиться сообщением


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: karomag
      Добрый день.
      Экспериментирую с подключение 7-сегментного индикатора к мк stm32. Индикатор с общим катодом. Соответственно для вывода цифры необходимо на анод каждого сегмента подать 1, а на общий катод 0. И тут я не могу понять какие токи будут через порты. Теоретически, пины МК подключенные через резистор 300 Ом к аноду (напряжение МК 3.3 В) то ток будет 4 мА, тогда на общем катоде должно быть 7 * 4 = 28 мА (цифра 8, т.е. горят все сегменты). Т.е. это небольшое, но превышение макс тока на ногу 20 мА. И надо общий вывод подключать через транзисторный ключ.
      Взял мультиметр. Результаты замера: ток каждого сегмента ~2.5 мА, ток общего катода 5 мА. Вот тут я подумал о школе Хогвардс))) Как все таки рассчитывается все таки ток на общем выводе? 
    • Автор: art_budka
      Ищу подрядчика для разработки проекта робота-рисовальщика. Есть бюджет, ТЗ. 
      Устройство представляет собой манипулятор передвигающий головку в плоскости XY в пределах жесткой рамы на которой установлены двигатели и направляющие перемещения. Головка представляет собой блок, отвечающий за передвижение закрепленного в фиксаторе объекта-пера по оси Z на расстояние до 20 мм. Фиксатор на элементе подъёма головки должен обеспечить жесткое закрепление предметов массой 10 - 80 грамм - кистей, шариковых ручек, карандашей и маркеров диаметром от 5 до 20 мм.
      Решение необходимо для обеспечения точных, многократно повторяющихся перемещений “пера” над плоской поверхностью. Для формирования движений в устройстве должна быть реализована электромеханическая схема, подключенная посредством USB-интерфейса к персональному компьютеру для отправки команд на манипулятор и получения обратной связи от контроллера манипулятора. 
      ТЗ, смета и бюджет через art_budka@rambler.ru 
    • Автор: green_whale
      Доброго времени суток.
      Собственно, сразу к делу. Необходимо измерить вч напряжение (частота порядка 20кГц, максимальная амплитуда 75мВ) с помощью микроконтроллера (скорее всего будет использоваться Arduino).
      Форма входного сигнала - пила (возрастает от минимального значения до максимального). Сигнал однополярный.
      Измерить нужно именно максимальное значение входящего сигнала. Измерение должно быть весьма точным (желательно, чтобы погрешность не превышала 1-2%).
      Есть пару идей :
      1. Сгладить сигнал, используя пиковый детектор (сможет ли сигнал такой частоты и формы зарядить конденсатор?).
      2. Использовать цап для генерации постепенно снижающегося напряжения и аналоговый компаратор.

      Надеюсь, кто-нибудь уже решал подобную проблему и сможет помочь советом или схемой.
    • Гость мистер_чувак
      Автор: Гость мистер_чувак
      Здравствуйте. Нашёл свои старые китайские портативные колонки, которые давно уже разобрал и потерял некоторые провода. Помогите разобраться, что к чему соединять, чтобы работало.
      фотка1
      фотка2
      фотка3
      фотка4
      фотка5
      фотка6
      фотка7
    • Автор: butyavk
      Компания "Диаконт" приглашает на собеседование по вакансии инженер-программист микроконтроллеров.
      Мы производим и поставляем современные приборы управления электроприводами для различных отраслей отечественной промышленности.
      Пополняем нашу команду программистов (готовы принять 2-3 кандидатов с различным опытом работы)!

      Основные обязанности:
      Разработка программного обеспечения для блоков управления приводами и др. вычислительных систем.
      Программирование на C++ микроконтроллеров фирмы Texas Instruments и НИИЭТ на базе ядра ARM Cortex-M4.
      Поддержка и доработка существующего программного обеспечения.
      Участие в научно-исследовательских и опытно-конструкторских работах.
      Участие во внедрении систем на объектах (редкие командировки).

      Требования к кандидатам:
      Хорошее знание схемотехники;
      Знание методов разработки и проектирования ПО для микроконтроллеров и опыт работы с их периферией;
      Знание основ управления электроприводами и ТАУ;
      Знание языков программирования высокого уровня (C++, C);
      Знание современных методов разработки ПО (ООП, ...);
      Знание английского языка (чтение технической документации);
      Приветствуется знание Python, Matlab/Octave;
      Дополнительным плюсом будет опыт автоматизированного тестирования встроенного ПО.

      Условия:
      Оплата полностью белая (на руки в зависимости от знаний и опыта от 50 000 руб до 100000 руб). Но, готовы обсуждать!;
      Карьерный и профессиональный рост;
      Предприятие с комфортными условиями труда на севере города;
      ДМС;
      График работы понедельник - пятница 9:00-17:40;
      Плавающее начало работы с 8:00-10:00;
      Льготное питание в столовой на территории предприятия;...

      Ключевые навыки
      Программирование микроконтороллеров
      C/C++
      Управление электродвигателями

      Адрес
      Санкт-Петербург, ул. Учительская 2, м. Гражданский проспект

      Тип занятости
      Полная занятость, полный день

      Резюме лучше отправлять на rykov@diakont.com 
  • Сообщения

    • А ничего, что исходник пишется для определённой среды разработки? Да ещё и требуется наличие нужных бибилиотек? Например, одних диалектов Си для AVR штук пять. И исходник, компилирующийся в CodeVision не обязан компилироваться в IAR. 
      А раз компилятор пишет ошибки - он их кому пишет? Пушкину? Лермонтову? Бальмонту? Нет - он тебе подсказывает! Читай ошибки и исправляй, пока не будет компилироваться. Чаще всего не понимает типы переменных (решается дефайнами), ищет функции, отсутствующие в стандартных библиотеках (подключай нужные библиотеки). Короче, изучай язык, а не жалуйся на программистов. Никому в голову не придёт выкладывать в открытый доступ неработающий исходный код. 
    • Вы не поверите, но переменный ток 50 раз в секунду меняет полярность относительно нуля! То в +, то в -.  На самом деле "ноль" - это просто условная точка отсчета.
    • квантовый генератор = чем больше тем лучше
    • Каша в голове. Если питание однополярное (т.е. имеются только шины "+" и "-"),  то какая из них будет подключена к общей - та и является нулевой.
    • Я думаю что R1  в "ланзаре" вполне возможно увеличить до 100 кОм., а то и выше тем самым увеличив входное сопротивление.  Если схема собрана достаточно грамотно, устойчивость не нарушится.
    • Актуальность темы. Применение высоковольтных нано и субнаносекундных импульсов достаточно обширно в настоящее время и постоянно расширяется вместе с развитием и удешевлением аппаратуры формирования импульсов. Некоторые примеры применения приведены ниже.
      Лазеры - возбуждение ячеек Поккельса и т. п.
      Экспериментальная физика - поджиг разрядников, формирование электронных и ионных пучков соответствующей длительности, времяпролетная массо и энерго спектрометрия.
      Химия - оперативное измерение параметров электролитов.
      Биология - импульсный электрофорез хромосом.
      Акустолокация - оперативное бесконтактное измерение толщины металлов с высокой точностью.
      Радиолокация - импульсная (широкополосная) локация, одно из преимуществ которой в малых габаритах и потреблении питания при большой импульсной мощности системы. Измерение параметров антенных систем во временной области с исключением влияния отражений от поверхности земли, зданий и т. п.
      Геолокация - радиолокация земной породы, океана и т. д. для поиска подземных вод, пустот (например в археологии), металлов, направления угольных пластов, измерения толщины льда.
      Радиоэлектроника - измерение помехоустойчивости аппаратуры, в том числе ЭВМ, импульсы развертки ЭОП. Посмотрите во вложении дипломный проект по этой теме. И еще автореферат диссертации на соискание ученой степени кандидата технических наук по этой же теме. А если еще и свое исследование проведете с учетом новшеств за прошедшие пару десятилетий, а не тупо проект напишете, сдадите и забудете, то честь вам и хвала. Генератор видеоимпульсов наносекундной длительности (2000).pdf Формирователи мощных наносекундных и субнаносекундных импульсов на полупроводниковой элементной базе (1994).pdf
    • Гость Дмитрий
      Всем доброго времени суток. Столкнулся с таким вопросом. Везде  в учебниках я читал, что земля это ноль, и все напряжения отсчитываются от него. Но вот в одной схеме я увидел, что на один вывод подается, например +20 В, а на другой вывод -20 В. Оказалось, что -20 В было подано на землю. Так вот, почему на землю подано -20 В, а не 0? И что, получается тогда на вход мы подаем 40 В (Разница между +20 и -20)?