Единица управления код

Щас приду домой попробую, вчера просто как только не ставил)

Обьясните эту фразу. К какому пину она относится, pc0? Как вы проверяли срабатывание на ноль и на единицу? Покажите оба варианта.

Пару минут и покажу )

Как работает при единице, в произвольном режиме, не знаю как исправить в коде [Imgur: The magic of the Internet]

======
Работа в 0, так же должно работать в единице [Imgur: The magic of the Internet]

Т.е должно работать только при нажатии как на втором видео, не в произвольном режиме

Зачем видео-то? Вы словами не можете объяснить, что это вообще значит и чем отличается работа по единице и по нулю? Если единица и ноль - активные уровни на пине pc0, то для перехода от одного к другому надо менять и схему и код. Покажите оба варианта

Схему не надо менять, это все заключается в коде

if (0 != (PINC & (1 << 0))) проверяет, находится ли пин PC0 в логическом высоком состоянии. Если PC0 равен 1, то условие будет истинным, и код внутри if выполнится. Если PC0 равен 0, условие не выполнится.

Если вы меняете кнопку, действующую по нулю, на кнопку, коммутируемую по единице - схема будет разная.
Может именно в этом ваша проблема, что вы этого не понимаете?

Ок это один вариант. А второй?

Если PC0 низкий (логическая 0), то результат будет 0.
if (0 != …) — это условие проверяет, является ли результат выражения

Мы друг друга не слышим.
Зачем вы мне расписываете, как работает эта строчка кода? Это все прописные истины.
Проблема то ваша в чем?

При единице управления на схеме программа начинает работу в произвольном режиме, т.е без нажатия на кнопки программа начинает сама работать, при нуле только при нажатии она начинает работу, вы так поняли?

Может вы не понимаете, что значит " управление по единице" в отличии от управления нулем?

Управление по единице ( активный уровень высокий) - это когда у вас сигнал HIGH на пине означает включено, а LOW - выключено.

А управление низким уровнем - когда ноль на пине это вкл, а единица - выкл.

Когда вы меняете управление с активного высокого на активный низкий, вам надо изменить и код и схему.

Тот код, который вы мне показываете - он только для первого случая. Покажите, как вы его меняете для смены управления единицей на управление нулем. И изменение схемы тоже.

Схема, которую вы показали, будет работать только при управлении низким уровнем ( от нуля, как вы говорите). Для управления единицей схема должна быть другая

Что-то типа такого?

3 лайка

Ещё раз говорю, вместо датчика, кнопку подключите в Протеусе (в поиске BUTTON ACTIVE ) одним концом к пину- другим к GND

P.S. И код, что я подправил, из #12

Сейчас попробую все сделать, и напишу получилось или нет)


Все, подключил но кажется вы все равно сделали к нулю, была бы единица на вольтметре подключенную к оптрону и земле необходимо чтобы показывало минимум 2.7 до 4.99 вольт

У вас подтяжка на PC0, значит всегда HIGH . При нажатии кнопки LOW. Ищите косяк в схеме.

// Включение подтягивающего резистора на PINC0
  PORTC = 0b00000001;