Здравствуйте
Задача от МК1 передать значение, например 0-255, на МК2.
МК2 может принимать только по юарт.
МК1 каждые 5сек передает по своему аппаратному юарт данные не для МК2.
Вариант 1й. Разделить их мосфетом и пропускать данные на МК2 только когда они для него.
Вариант 2й. Передавать данные для МК2 по программному юарту.
Второй вариант вроде проще, но использовать для передачи значения 0-255 целую библиотеку кажется нерациональным. Может есть способ похожий но не такой ресурсозатратный? Упростить библиотеку я не смогу.
какую библиотеку? И зачем вам что-то делить мосфетом?
Постарайтесь описать все четко и ясно, приведите код и схему подключений
Первый вариант. Rx мк2 подключент к Тх мк1 через транзистор. Когда нужно передать данные для мк2, транзистор открыт. Когда не нужно, он закрыт. Это для того чтобы мк2 не получал пакеты данных не для него.
Вариант второй. На мк1 используется библиотека программного юарта (софт сериал)
Вариант три - взять МК с двумя сериалами
- Взять в качестве МК1 контроллер с двумя аппаратными uart.
- Связать МК1 и МК2 не по uart, а по другому свободному интерфейсу, например, i2c
- Ещё раз оценить аргументы в пользу отказа от софтверного сериала. Может они не такие уж весомые?
Схему нарисуйте - тогда поговорим
Если хочется аппаратно, то демультиплексор (дешифратор), иначе soft UART.
вариант номер 3, заказать парсер данных за 5000 не вариант ?))) это самый простой вариант, но требующий других ресурсов… добавить библиотеку софт сериал, и передавать данные на отдельный пин, и только если на него данные приходят что то выполнять я думаю вы в силе…
Все это обдумывал, но становился на этих двух вариантах.
С транзитором просто не хотелось бы заморачиваться, а с софтсериал показался избыточен, но может я приувеличиваю и на нем остановлюсь.
Касательно схемы, там нечего рисовать. Сигнал идёт через сток исток, затвором управляет мк1, для разделения пакетов.
2 транзистора и 2 пина на управление.
А почему два? Мне только передать и все
ну так нарисуйте свою библиотеку, если готовая вам не нравится
хоть я и не могу сжать данные до одного байта, но я могу сжать вопрос до такой степени, напишите код парсера на халяву))), я не могу подключить 1 провод между мк, и при посылании сигнала high принимать данные, а при low игнорировать, от сюда наверное и два провода)))
а 1 wire и прочие могут.
так что учись пока.
Соединить пин на МК1 с пином на МК2. При передаче для МК2 устанавливать высокий уровень, иначе -низкий.
Проще принимать все данные, ненужные данному мк игнорировать.
Нашел библиотеку софтсериалТх. Я так понял она как раз только для отправки. Скачаю, проверю. Сравню с полноценной софтсериал. Может на ней и остановлюсь
Передать или одному, или другому! Не зря люди хотят схему. И самому стало бы понятно.
А, в этом смысле. Ограничить от лишнего нужно только мк2. Остальная информация идет на блютуз модуль и там не страшна лишняя информация. Поэтому только один транзистор)
Найденная библиотека в почти 3 раза легче, если заработает, то на ней и остановлюсь