Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.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 28.03.21, 14:23 |
Цитата Alexei @ Порт не работает ни на вход, ни на выход. |
Автор: Alexei 28.03.21, 14:59 |
Тогда только скальпель. 1.gif (, : 369) Подчеркнуты самые отключенные режимы. Пин включен на вход, но кто вас заставляет им пользоваться. И через него только токи утечки. |
Автор: Сергей85 28.03.21, 15:03 |
Цитата Alexei @ Нет. Команда PORTC полностью выключает порты пакетно. Не работает ни прием, ни передача. |
Автор: Alexei 29.03.21, 09:22 |
"А мужики то не знают!" , мужики из Атмела, а теперь Микрочипа, вы им глаза откройте. Я бы арДУРЬинеров сжигал на костре! Нихрена не понимают , а способны "подавать какие-то советы космического масштаба и космической же глупости" (с) PORTC "ниразу" не пакетная, и не команда, а регистр данных порта С. Если вы хотите чтобы вам помогли , то стоит написать что вам нужно. Конкретно. А не ваши домыслы и фантазии. |
Автор: DrUnkard 29.03.21, 11:06 |
Толерантнее надо быть! Как некоторые пины к 5 вольтам! |
Автор: Сергей85 29.03.21, 14:33 |
"PORTC "ниразу" не пакетная, и не команда, а регистр данных порта С." - мне плевать, как это называется официально. Вопрос в теме остается в той же формулировке. PORTC делает это пакетно. Как делать раздельно для 1 порта. |
Автор: Alexei 29.03.21, 15:20 |
Покажите, как вы применяете эту "команду". Подозреваю, что вы не понимаете что такое "включение-выключение". Это не называется . |
Автор: Сергей85 29.03.21, 15:33 |
Цитата Alexei @ Примерно PORTC = B00000000; В этом случае ни функция чтения порта, ни функция записи не функционируют. |
Автор: Alexei 30.03.21, 09:17 |
Это уже обнадеживает! А как будет выглядеть "пакетная команда включения"? Собственно "командного" тут оператор присвоения "=" Вы присвоили "0" всем разрядам порта С, кстати один 0 лишний, у этой меге , если не путаю, порт С 7-ми разрядный. По поводу "выключения" : светодиоды, например , подключенные к выводам порта и на "+" ,будут ярко светиться. Нихренасе выключение. Это как бы вы хотели выключить люстру втыканием в розетку железной скобы. Наверно, хреновые у вас функции... Может вы что-то слышали про "пакетную команду" DDRC ? Она определяет что будет делать вывод порта , читать или писать. То есть , "выключится порт" по вашему или нет. В той таблице, что выше ,все показано. |
Автор: Сергей85 30.03.21, 14:11 |
DDRC - не выключится, а переключится. |
Автор: Alexei 30.03.21, 14:29 |
Вот-вот, переключится с вашего "выключения". Если запишите "0" в DDRC, то "0" записанный в PORTC "повиснет в воздухе" И если вы подадите внешнюю "1" на вывод , то она прочитается контроллером. |