Также стоит отметить, что большинство современных микроконтроллеров имеют встроенные программно управляемые подтягивающие резисторы. Это решение дополнительно позволяет упростить схему устройства.
А вот внутренние подтягивающие резисторы не стоит использовать для кнопок.
Практически у всех вижу подобный Toggle(), но все же лучше читать ODR и писать в BSRR, как для Set() и Reset(), это медленнее, но безопасно.
Да, это замечание написано в комментариях
Например, пин в режиме OpenDrain без подтяжки, тогда из IDR можно прочесть что угодно,
Странный случай. OD и без подтяжки. Наверное, Вы хотели написать, что кто-то линию зашунтировал (подтянул к общему). Как, например, i2c и несколько мастеров. Тогда да, вполне реальный пример.
а если подтяжка есть, то правильное значение будет читаться до достижения определенных скоростей и два Toggle() подряд для мк работающего на 100+ MHz не гарантирует возврата к первоначальному состоянию.
Возможно, надо посмотреть с какой частотой работает шина на которой висят gpio. Подозреваю, что она не даст переключать с такой скоростью, что бы пропустить изменение состояния вывода.
А вообще, этот метод (Toggle) в классе лишний, пока не применял у себя, везде писал clk.On(); clk.Off();
Ну в вашем коде тоже есть зависимости от компилятора, вы так же не даёте возможность собрать ваши проекты на других компиляторах.
Перечислите, пожалуйста. (Про #pragma ниже). Какие ещё зависимости?
Например, использование директив pragma. Да, #pragma once поддерживается многими компиляторами, но это не входит в снандарт, и не гарантирует одинаковое поведение. Кроме того, есть мнение, что такая конструкция может наносить "непоправимые" ошибки.
Пока не встречал такого. GCC, G++, msvs, IAR, Keil никаких сюрпризов не подсовывали с #pragma once
Всё это может отпугнуть только робких программистов. Тру электроник может заточить чужой код под свою железяку.
ИК лучи (тепло) излучаемые от нагретого смартфона будут отражаться от поверхности кожи. Датчик не сможет это различить.
На складах исчезли контроллеры, а жадные продавцы подняли цены 10х
Более мощным можно и медь выжигать
У них даже в схеме все разбросано. Может, я занудничаю, но так рисовать принципиальные схемы, мягко говоря, не красиво.
Очень смело использовать внутренние подтягивающие резисторы.
Не набитой шишки, а заработанной шишки...
Это называется фазовая скорость. Как пример: удар волны на набережной.
Ничего не поменялось.
Нарисуйте схему прохождения импульсной помехи с внешним резистором и внутренним.
А вот внутренние подтягивающие резисторы не стоит использовать для кнопок.
Понравился Ваш модуль. Жаль, нет выхода hdmi и входа mipi csi...
Хайтех превратился в хайтак
Интересно, а есть ли программы для проектирования трубопроводов по принципу схема-список соединений-трассировка? Как в радиоэлектронике?
При этом мегафон за отдельную плату раскрывает скрытые или подменные номера, высвечивая номера шлюза.
Дихлорэтан. Если быстрее, то дихлорметан.
Только не стоит делать дома.
А Вы пробовали?
Мне вот интересно, где находятся американские штаты соединения.
Опс. Не увидел. Пришло уведомление, не обратил внимание кому направлен ответ.
Да, это замечание написано в комментариях
Странный случай. OD и без подтяжки. Наверное, Вы хотели написать, что кто-то линию зашунтировал (подтянул к общему). Как, например, i2c и несколько мастеров. Тогда да, вполне реальный пример.
Возможно, надо посмотреть с какой частотой работает шина на которой висят gpio. Подозреваю, что она не даст переключать с такой скоростью, что бы пропустить изменение состояния вывода.
А вообще, этот метод (Toggle) в классе лишний, пока не применял у себя, везде писал clk.On(); clk.Off();
Поэтому, не возникало нюансов.
Перечислите, пожалуйста. (Про #pragma ниже). Какие ещё зависимости?
Пока не встречал такого. GCC, G++, msvs, IAR, Keil никаких сюрпризов не подсовывали с #pragma once
Не понял, что может отпугнуть?