Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Микроконтроллеры > Как проверить в ардуино, открыт ли определенный порт (аналог/цифра)?


Автор: Сергей85 23.03.21, 14:26
Дополнительно: как закрыть порт, не прибегая к пакетному PORTC?

Автор: DrUnkard 23.03.21, 17:19
Цитата
Дополнительно: как закрыть порт, не прибегая к пакетному PORTC?

Небось соответствующий бит инвертировать?

Цитата
Как проверить в ардуино, открыт ли определенный порт

Небось соответствующий бит проанализировать на 1 или 0.

Автор: Сергей85 23.03.21, 17:41
Цитата DrUnkard @

Может, хорош стебаться уже? Мне функции нужны.

Автор: DrUnkard 23.03.21, 17:59
А че стебаться-то? Все микроконтроллеры похожи. Я в Ардуине не в зуб ногой, но для PIC24 кое-что писал. Сильно на твои коды похоже.

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    // Настройка регистра B.
    // Аналоговые входы (определены в ADC_Init): RB0, RB1 и RB2 Установим их в 0.
    // Цифровые выводы RB3=1 - SI4463_RST   RB4=1 - REF_SKIP_SW включает опорн сигнал
        LATB=0b00000011000000; // RB5, RB8-RB15 в 0(выкл) RB6=>CS2 1, RB7=>CS3 1 (потенциом и DAC VMAG не на связи)
    // Аналоговые входы RB0 (VREF+), RB1 (AN1-MAG), RB2 (AN2-PHS)
    // Цифровые выводы: RB3 и RB4, RB5=>SW25, RB8-RB15 => SW26-SW33. RB6 и RB7 оставляем как есть 1(Вход)
        TRISB=0b0000000000000111;
        ODCB=0x0; // Драйвер, а не открытый сток

Автор: Alexei 27.03.21, 13:00
Цитата Сергей85 @
как закрыть порт

Что вы подразумеваете под этим?

Автор: Сергей85 28.03.21, 14:23
Цитата Alexei @

Порт не работает ни на вход, ни на выход.

Автор: Alexei 28.03.21, 14:59
Цитата Сергей85 @
ни на вход, ни на выход.

Тогда только скальпель. :)
1.gif (, : 369)
Подчеркнуты самые отключенные режимы.
Пин включен на вход, но кто вас заставляет им пользоваться. И через него только токи утечки.

Автор: Сергей85 28.03.21, 15:03
Цитата Alexei @


Нет. Команда PORTC полностью выключает порты пакетно. Не работает ни прием, ни передача.

Автор: Alexei 29.03.21, 09:22
Цитата Сергей85 @
Нет. Команда PORTC полностью выключает порты пакетно

"А мужики то не знают!" , мужики из Атмела, а теперь Микрочипа, вы им глаза откройте.:)
Я бы арДУРЬинеров сжигал на костре!
Нихрена не понимают , а способны "подавать какие-то советы космического масштаба и космической же глупости" (с)
PORTC "ниразу" не пакетная, и не команда, а регистр данных порта С.

Если вы хотите чтобы вам помогли , то стоит написать что вам нужно.
Конкретно. А не ваши домыслы и фантазии.

Автор: DrUnkard 29.03.21, 11:06
Цитата Alexei @
Я бы арДУРЬинеров сжигал на костре!

Толерантнее надо быть! ;) Как некоторые пины к 5 вольтам! :D

Автор: Сергей85 29.03.21, 14:33
"PORTC "ниразу" не пакетная, и не команда, а регистр данных порта С." - мне плевать, как это называется официально.

Вопрос в теме остается в той же формулировке. PORTC делает это пакетно. Как делать раздельно для 1 порта.

Автор: Alexei 29.03.21, 15:20
Покажите, как вы применяете эту "команду".
Подозреваю, что вы не понимаете что такое "включение-выключение". :)

Цитата Сергей85 @
как это называется официально.

Это не называется .

Автор: Сергей85 29.03.21, 15:33
Цитата Alexei @



Примерно PORTC = B00000000;

В этом случае ни функция чтения порта, ни функция записи не функционируют.

Автор: Alexei 30.03.21, 09:17
Цитата Сергей85 @
Примерно

Это уже обнадеживает!
А как будет выглядеть "пакетная команда включения"?

Цитата Сергей85 @
PORTC = B00000000;

Собственно "командного" тут оператор присвоения "="
Вы присвоили "0" всем разрядам порта С, кстати один 0 лишний, у этой меге , если не путаю, порт С 7-ми разрядный.
По поводу "выключения" : светодиоды, например , подключенные к выводам порта и на "+" ,будут ярко светиться. Нихренасе выключение.
Это как бы вы хотели выключить люстру втыканием в розетку железной скобы. :)


Цитата Сергей85 @
не функционируют

Наверно, хреновые у вас функции...
Может вы что-то слышали про "пакетную команду" :) DDRC ? Она определяет что будет делать вывод порта , читать или писать. То есть , "выключится порт" по вашему или нет.
В той таблице, что выше ,все показано.

Автор: Сергей85 30.03.21, 14:11
Цитата Alexei @
DDRC


DDRC - не выключится, а переключится.

Автор: Alexei 30.03.21, 14:29
Цитата Сергей85 @
переключится

Вот-вот, переключится с вашего "выключения".
Если запишите "0" в DDRC, то "0" записанный в PORTC "повиснет в воздухе"
И если вы подадите внешнюю "1" на вывод , то она прочитается контроллером.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)