void loop() { PORTE |= 1<<PE6; digitalWrite(13, PINE & 1<<PE6 ); //issue here. if I change to PORTE will work delay(3000); PORTC &= ~PIN_LED; PORTE &= ~(1<<PE6); }
друзья , ктото сталкивался с таким ? как исправить?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется... скушно, бабоньки!
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Особенность АВРок - запись единицы в ПИН приводит к инвертированию выходного уровня. "... Toggling the Pin Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port. ..." И то... надо всегда документацию смотреть - до определенного времени у старых МК такой особенности не было.
Ещё раз: в коде написано digitalWrite, где чтение?!
Добавлено after 57 seconds: упс... Это ж ардуина... Прошу пардону
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется... скушно, бабоньки!
Дык правильно - digitalWrite(pin, value) это ЗАПИСЬ в один из выводов порта.
Правда как оное реализуется "внутрях" - Х/З...
Только вот... Ежли уж следовать адурине...
Код:
digitalWrite(13, digitalRead(7));
РЕ6=D7 для леонарды как-то так должно бысть... При том, что тот "7" должен быть настроен как ВХОД и принимать внешнее значение. Насчет экскрементов с прямым использованием портов на этапе освоения - там помимо стандартной матчасти вида даташитов еще и нюенсы "софтовых надстроек" могут добавиться.
Последний раз редактировалось BOB51 Ср май 22, 2019 13:48:51, всего редактировалось 1 раз.
По канонам адуринки если прием данных pinMode(pin, mode) т.е. если хотим принимать данные (работа на вход) pinMode(7, INPUT_PULLUP) - вход с подтяжкой к 1 или pinMode(7, INPUT) - вход с Z состоянием Если выход pinMode(7, OUTPUT) с последующей установкой значения для вывода digitalWrite(7, HIGH) или LOW помимо прочего в случае, когда статус выходной линии порта управляется программой абсолютно лишена смысла конструкция типа "записать в порт и затем считать данные с вывода для выдачи результата в другой порт" которую просто заменяют на "записать данные в порт n и порт m" возможно и оптимизатор компилятора будет того же мнения.
СИ не ассемблер, где можно любые варианты проводить для исследования терпения МК.
для светика нам нужен выход вот все порты и настроены DDRx = 256 далее логика кода кривая/прямая это оставим на совесть кодератора сам синтаксис верный насколько я могу судить . если нет поправьте.
в плане чтения PORT и PIN делают тоже самое. однако PIN вообще не читает я пробовал if (PINE) PORTC |= led13 и это в то время как PORTE имеет единицу т.к. там горит светик. т.е. не может быть PINE нулем но он ноль. if не срабатывал ардуина не любимая здесь чисто для скорости писанины кода. я убирал все встаки ардуины эфект if не срабатывает потому что PINe зараза не читает порт
а она там есть на самом деле? может, там КЗ на землю или что-то подобное... и что там на этой линии аппаратного висит - может, оно и не дает появиться единичке?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется... скушно, бабоньки!
Похоже на завуалированный подвох. Ежли б на чистом ассемблере выполнять - это одно, а вот как интерпретирует компилятор ЯВУ тот бред?
Читаем вывод настроенный на ВЫХОД, маскируем полученное значение по И с единицей и полученный результат впихериваем в другой порт.
При том, что статус ранее выведенных в тот порт, что читаем, данных (предваряющих чтение) нам НЕИЗВЕСТЕН. Как и статус цепочек внешней обвязки. Ежли там "застрял" нуль - то и будет "вечный нуль" в результате. В то ж время используемый для силовых целей вывод (вида светик или мощная нагрузка) может исказить значение логического уровня при "обратном чтении". Да и МК даже для адурины выбран довольно специфичный (в смысле малознакомый в популярных применениях). Потом... if (PINE) истина будет при любом отличном от нуля значении любой из линий порта посему D7 при такой проверке вполне может быть и нулем и единицей - проверка данный вывод по факту не проверяет.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения