Например TDA7294

Форум РадиоКот • Просмотр темы - PINx не читает порт на леонардо :(
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб мар 30, 2024 11:30:24

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 67 ]  1, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 05:39:51 
Грызет канифоль

Зарегистрирован: Сб янв 03, 2015 21:03:24
Сообщений: 266
Рейтинг сообщения: 0
Код:
#define PIN_LED (1 << PC7)

void setup() {
DDRF = 0xFF; PORTF = 0;
DDRE = 0xFF; PORTE = 0;
DDRD = 0xFF; PORTD = 0;
DDRC = 0xFF; PORTC = 0;
DDRB = 0xFF; PORTB = 0;
}

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);
}


друзья , ктото сталкивался с таким ? как исправить?

PORTx прекрасно читает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 06:17:24 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18026
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
У вас же вывод в порт, какое чтение?!

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

скушно, бабоньки!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 08:28:47 
Грызет канифоль

Зарегистрирован: Сб янв 03, 2015 21:03:24
Сообщений: 266
Рейтинг сообщения: 0
я читаю PIN порт Е если там высоки то высокий пишу в порт С
ели в Е низкий то низкий пишу в порт С

если PIN заменить на PORT то работает как я говорю. вроде ошибок нету именно в синтаксисе ?!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 08:40:56 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 63
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
У вас порт Е в режиме вывода - и в него выведен 0.
PINE будет отдавать нолик.
Выведите в порт Е единички - и PINE будет читать единичку.

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 10:14:12 
Грызет канифоль

Зарегистрирован: Сб янв 03, 2015 21:03:24
Сообщений: 266
Рейтинг сообщения: 0
Почему ноль?

PORTE |= 1<<PE6

И смотрите. Не меня код. Просто меняю PIN на PORT то работает. То есть пишет единицу в port c


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 11:51:47 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14026
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Особенность АВРок - запись единицы в ПИН приводит к инвертированию выходного уровня.
"...
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.
..."
И то... надо всегда документацию смотреть - до определенного времени у старых МК такой особенности не было.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 13:08:16 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18026
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Ещё раз: в коде написано digitalWrite, где чтение?!

Добавлено after 57 seconds:
упс... Это ж ардуина... Прошу пардону

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

скушно, бабоньки!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 13:25:24 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14026
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Дык правильно -
digitalWrite(pin, value)
это ЗАПИСЬ в один из выводов порта.
8)
Правда как оное реализуется "внутрях" - Х/З...
:dont_know:
Только вот...
Ежли уж следовать адурине...
Код:
 digitalWrite(13, digitalRead(7));

РЕ6=D7 для леонарды
как-то так должно бысть...
При том, что тот "7" должен быть настроен как ВХОД и принимать внешнее значение.
Насчет экскрементов с прямым использованием портов на этапе освоения - там помимо
стандартной матчасти вида даташитов еще и нюенсы "софтовых надстроек" могут добавиться.


Последний раз редактировалось BOB51 Ср май 22, 2019 13:48:51, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 13:48:15 
Грызет канифоль

Зарегистрирован: Сб янв 03, 2015 21:03:24
Сообщений: 266
Рейтинг сообщения: 0
Особенность АВРок - запись единицы в ПИН приводит к инвертированию выходного уровня.
"...
8)


так я же ни где не пишу в PINx ?! я читаю пином

Добавлено after 1 minute 17 seconds:
Код:
void digitalWrite(uint8_t pin, uint8_t val)
{
        uint8_t timer = digitalPinToTimer(pin);
        uint8_t bit = digitalPinToBitMask(pin);
        uint8_t port = digitalPinToPort(pin);
        volatile uint8_t *out;

        if (port == NOT_A_PIN) return;

        // If the pin that support PWM output, we need to turn it off
        // before doing a digital write.
        if (timer != NOT_ON_TIMER) turnOffPWM(timer);

        out = portOutputRegister(port);

        uint8_t oldSREG = SREG;
        cli();

        if (val == LOW) {
                *out &= ~bit;
        } else {
                *out |= bit;
        }

        SREG = oldSREG;
}


Добавлено after 7 minutes 31 second:
но причем тут что там внутри если проблема в PINx
прочтите комент

digitalWrite(13, PINE & 1<<PE6 ); //issue here. if I change to PORTE it will works


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 13:50:08 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14026
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А каким образом настроен D7?
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 14:30:29 
Грызет канифоль

Зарегистрирован: Сб янв 03, 2015 21:03:24
Сообщений: 266
Рейтинг сообщения: 0
D7 = PE6 , D13 = PC7
тот который ми выставляем в 1 ?

PORTE |= 1<<PE6

настрое как выход
DDRE = 0xFF;

или я тормажу ? :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 14:47:10 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14026
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
По канонам адуринки
если прием данных
pinMode(pin, mode) т.е.
если хотим принимать данные (работа на вход)
pinMode(7, INPUT_PULLUP) - вход с подтяжкой к 1 или
pinMode(7, INPUT) - вход с Z состоянием
Если выход
pinMode(7, OUTPUT) с последующей установкой значения для вывода
digitalWrite(7, HIGH) или LOW
помимо прочего в случае, когда статус выходной линии порта управляется программой
абсолютно лишена смысла
конструкция типа
"записать в порт и затем считать данные с вывода для выдачи результата в другой порт"
которую просто заменяют на
"записать данные в порт n и порт m"
возможно и оптимизатор компилятора будет того же мнения.
:roll:
СИ не ассемблер, где можно любые варианты проводить для исследования терпения МК.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 16:42:43 
Грызет канифоль

Зарегистрирован: Сб янв 03, 2015 21:03:24
Сообщений: 266
Рейтинг сообщения: 0
для светика нам нужен выход
вот все порты и настроены DDRx = 256
далее логика кода кривая/прямая это оставим на совесть кодератора :)
сам синтаксис верный насколько я могу судить . если нет поправьте.

в плане чтения PORT и PIN делают тоже самое. однако PIN вообще не читает
я пробовал
if (PINE) PORTC |= led13 и это в то время как PORTE имеет единицу т.к. там горит светик. т.е. не может быть PINE нулем но он ноль. if не срабатывал
ардуина не любимая здесь чисто для скорости писанины кода. я убирал все встаки ардуины эфект if не срабатывает
потому что PINe зараза не читает порт


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 17:08:07 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 63
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
DDRx = 255

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 17:41:58 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 0
ардуина не любимая здесь чисто для скорости писанины кода.

И чё, быстрее?:)

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 18:59:57 
Грызет канифоль

Зарегистрирован: Сб янв 03, 2015 21:03:24
Сообщений: 266
Рейтинг сообщения: 0
Ну кому как :)
255 конечно. Опечатка ведь.
Есть идеи почему if PINx не видит единицу?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 19:09:33 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18026
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
alex68md писал(а):
Есть идеи почему if PINx не видит единицу?
а она там есть на самом деле? может, там КЗ на землю или что-то подобное... и что там на этой линии аппаратного висит - может, оно и не дает появиться единичке?

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

скушно, бабоньки!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 19:41:16 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
alex68md писал(а):
Есть идеи почему if PINx не видит единицу?
Есть идеи.
Чему у вас результат равен PINE & 1<<PE6 ?
Какие значение может принимать digitalWrite(13, х ) ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Ср май 22, 2019 22:59:11 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14026
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Похоже на завуалированный подвох.
Ежли б на чистом ассемблере выполнять - это одно, а вот как интерпретирует компилятор ЯВУ тот бред?

Читаем вывод настроенный на ВЫХОД, маскируем полученное значение по И с единицей и полученный результат впихериваем в другой порт.

При том, что статус ранее выведенных в тот порт, что читаем, данных (предваряющих чтение) нам НЕИЗВЕСТЕН. Как и статус цепочек внешней обвязки.
Ежли там "застрял" нуль - то и будет "вечный нуль" в результате.
В то ж время используемый для силовых целей вывод (вида светик или мощная нагрузка) может исказить значение логического уровня при "обратном чтении".
Да и МК даже для адурины выбран довольно специфичный (в смысле малознакомый в популярных применениях).
Потом...
if (PINE)
истина будет при любом отличном от нуля значении любой из линий порта
посему D7 при такой проверке вполне может быть и нулем и единицей - проверка данный вывод по факту не проверяет.
:sleep:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: PINx не читает порт на леонардо :(
СообщениеДобавлено: Чт май 23, 2019 05:41:00 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 0
А не будет ли так, что вы пишете 1 в Порт и тут же читаете из Пин? Перед чтением попробуйте поставить nop и тогда читайте.

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 67 ]  1, , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y