Jump to content
Sign in to follow this  
hardbar

Запись Даных После Опроса И Отправка.алгоритм Uarta На Asm

Recommended Posts

Вот хочу сделать опрос кнопок на одном мк отправка по Uart и вывод значения на другом мк.

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

Просто по очереди записывать в РОН и отправлять не работает так как даные после обработки могут пойти не в той порт.

вот схема для наглядности

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

Edited by hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Share this post


Link to post
Share on other sites

Дай сначала байт-идентификатор, а потом байт данных. Т.е. $7F (идентификатор передачи состояния фиксированных кнопок), $XX (само состояние) и $1F (идентификатор кнопок без фиксации), $XX (само состояние). На другом конце МК декодирует идентификаторы в посылках и согласно им поместит результаты "по местам". Коды идентификаторов можешь придумать любые, на свое усмотрение.

Share this post


Link to post
Share on other sites

Интересная идея нужно будет попробовать.


Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Share this post


Link to post
Share on other sites

Взаимодействие устройств IoT от Microchip с облаком Google

Благодаря облачным технологиям появилась возможность реализовать сложные проекты на базе микроконтроллера путем перераспределения вычислительной нагрузки между микроконтроллером и облаком. Простые в использовании отладочные платы, такие как AVR- и PIC-IoT WG, позволяют выполнять ресурсоемкие вычисления, передавая их в облако.

Подробнее

А если идентификатор совпадает с посылкой. Тогда что сделать?

Edited by hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Share this post


Link to post
Share on other sites

Вебинар «Решения Analog Devices для гальванической изоляции. Обзор технологий и новинок» (27.04.2021)

Компания «Компэл» и Analog Devices приглашают всех желающих 27/04/2021 принять участие в вебинаре, посвященном решениям Analog Devices для гальванической изоляции. В программе вебинара: технологии гальванической изоляции iCoupler, цифровые изоляторы, технология isoPower, гальванически изолированные интерфейсы (RS-485, CAN, USB, I2C, LVDS) и другое. Вебинар будет интересен разработчикам промышленной автоматики и медицинской техники.

Подробнее

По коду может, но по номеру байта в посылке нет. Пусть второй МК принимает за идентификатор первый байт посылки, а второй - данные. Посылки по-умолчанию, двухбайтные. Там путаться не в чем.

Share this post


Link to post
Share on other sites

WDR-60 от Mean Well – источник питания на DIN-рейку со сверхшироким входом

Компания Mean Well расширяет семейство одно- и двухфазных источников питания со сверхшироким диапазоном входного напряжения, предназначенных для монтажа на DIN-рейку, дополнив его серией WDR-60. Широкий температурный диапазон работы позволяет применять их для питания промышленных систем управления и контроля, устройств промышленной автоматизации и всевозможных стационарных электромеханических устройств, где важны надежность и безопасность.

Подробнее

Ок. А как тогда сделать двух байтовую посылку. Вдруг первый байт придет вторым а второй первым.


Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Share this post


Link to post
Share on other sites

Не вей провода и тогда байты не запутаются. :) Ты волнуешься, что принимающий МК собьется со счета? Тогда усложни протокол. Запрос на передачу (МК №1 1байт), ответ готовности приема (МК №2 1байт), посылка данных (идентификатор/данные). Пока не договорятся все посылки игнорировать. Во время ответа второй МК синхронизирует счетчик принятых байт. Ну как-то так. Можно напридумывать как угодно.

Share this post


Link to post
Share on other sites

Оооо... гениальная мысля. Нужно чтоб приемник давал команду что готов принять 1 посылку после ее приема давал что готов принять 2 посылку. А потом выводил значение в порт.

Спасиба!


Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • после второго уже нужно было задуматься и искать причину, а не тупо менять конденсаторы. поставьте на прогон у себя на несколько дней. если у вас будет нормально работать, ищите причину у хозяина, проверяйте кабель, сплиттер и т.д..
    • А сопротивление какое у аппарата? Думаю, ампер 50-100 надо для пуска, как у шуруповёрта. Пару вариантов есть: 1) Бери блок на 12 В 60-100 А. 2) Просто добавь к блоку на 200 Вт электролит на 1-5 фарад, что бы не срабатывала защита от импульсного тока. 3) Использовать блок с CC/CV. 4) Возьми аккумулятор от/для шуруповёрта.
    • Николай Платонович Патрушев летом будет 70; Путин почти 69 лет; Валентина Ивановна Матвиенко  72 года; Сергей Кужугетович Шойгу почти 66 лет;  Элла Александровна Памфилова  почти 68 лет; Виктор Васильевич Золотов 67 лет; Сергей Евгеньевич Нарышкин почти 67 лет;  Анатолий Борисович Чубайс почти 66 лет. Александр Иванович Бастрыкин почти 67 лет. Будущее у этой команды как ни крути короткое... 
    • Там на картинке подписано, для чего эта приблуда.
    • Раньше (пару лет назад) удивлялся китайцам, маски у них уже были... теперь мы их копируем, 50 лет они копировали, кстати во многом мы похожи теперь, даже не масками... Просто тех мощностей, что есть, вакцины всем через пару лет только хватит всема нашему населению, вот тогда можно чтото о этом говорить
    • @АлександрМех Обратная связь гасит изменение напряжения на базе не на 100%, а на меньше, например на 99%. Если бы была компенсация 100%, то ток базы и коллектора бы не изменился, и не было бы этой самой обратной связи! Поэтому остаток 1% этого "противодействия" как раз такой, какой нужен для изменения тока базы, чтобы изменился ток эмиттера, чтобы на резисторе в эмиттере появилось изменение напряжения для этой обратной связи. Тут ещё нужно помнить, что изменение напряжения база-эмиттер всего на 60мВ вызывает изменение тока базы в 10 раз. Поэтому практически для расчётов принимают напряжение база-эмиттер постоянным, типа всегда 0.6 В.
  • Similar Content

    • By RIMUS1989i
      Здравствуйте. Вопрос к гуру, на сколько будет меньше разрыв данных при посылке через SPI 16бит, если ожидание готовности написать на ассемблере? И сразу второй вопрос, как правильно её вставить?
      void sendWord(uint16_t data) { SPDR = data; while(!(SPSR & (1<<SPIF))); // это заменить на ассемблерную вставку //вот тут видно задержку SPDR = data>>8; while(!(SPSR & (1<<SPIF))); // и это заменить на ассемблерную вставку } Этот код не работает (ассемблерная вырезка из даташита). Я не соображаю...
      asm volatile( "Wait_Transmit: in r16, SPSR sbrs r16, SPIF rjmp Wait_Transmit ret" ); Пока писал сообщение, понял свой косяк, регистр r16 в строке выше у меня не соответствует data.Тогда еще вопрос, как полностью этот кусок "sendWord" написать на ассемблере?
      Заранее Спасибо!
    • Guest Константин
      By Guest Константин
      Здравствуйте, совсем недавно начать освоение микроконтроллеров и в начале пути столкнулся с двумя проблемами:  
      1) При нажатии кнопки "Run" для запуска проекта выдает ошибку: No ST-LINK detected! Please conncect ST-LINK and restart the debug sesion. При этом ST_Link установлен, создаю bin-файлы и зашиваю через него.
      2) есть плата STM32discovery и преобразователь интерфейса uart-usb|com, нужно передать сообщение по данному интерфейсу, но терминальные программы  (putty, smarty, realterm) не принимают ничего хотя видят данный порт. Ошибок в коде нет, светодиод мигает.
       


    • Guest NickL
      By Guest NickL
      Всем привет.
      Имеется датчик давления под управлением микрухи MLX90308. Микруха сия собирает показания с 4-х включенных мостом тензометрических датчиков, и отдает обработанное значение в виде аналогового сигнала. Так же есть пин для получения данных в цифре и калибровки/прошивки этой микрухи. Производитель микрухи предлагает бесплатный софт и свою отладочно-прошивочную плату (EVB90308) за 250 бакинских (дорого), которую ждать 8 недель (долго)
      Судя по докам, там обычный UART, но с другими уровнями. Логический 0 = 0.3*Uвх, т.е. 1.5в, Логическая 1 = 0.7*Uвх, т.е. 3,5в. И всё это засунуто в единственный пин и на прием и на передачу.
      Универ был давно, да и учился я плохо, подскажите пожалуйста пример схемы чтобы 1) свести tx и rx на одну ногу 2)согласовать уровни для чтения/записи сей микрухи доступными средствами. Например, FTDI.
      Даташит микрухи:
      https://www.melexis.com/-/media/files/documents/datasheets/mlx90308-datasheet-melexis.pdf
      Спасибо заранее! Это датчик из блока АБС мотоцикла, замены нет, б/у запчастей нет, а новый блок стоит как сам мотоцикл.
    • By Дмитрий -
      На примере GSM/GPRS Goouuu Tech IOT-GA6-B и ATtiny85.
      Программа «Звонилка». 
      Программа на BASCOM-AVR. 
      Источник https://178654.blogspot.com/p/uart.html
       

    • By Viktor Golubov
      Почему может неправильно работать uart? Подключил 1 uart к пк через usb/uart переходник, а второй к gsm модему. В первый уарт вывожу инфу для дебага, а во второй AT команды. Суть в том, что сообщения для 2 уарта выводятся в 1 уарт

      и выводятся как то странно

      не полностью

      Вот такой вывод постоянно:

      Begin
      End
      AT+CNMI=2,2,0,0,0
      AT+CMGEnd
      AT+CNMI=2,2,0,0,0

      а должно быть просто

      begin

      end

      и все

      полный код https://pastebin.com/zBBZmZue
×
×
  • Create New...