Jump to content

Recommended Posts

Только что, Дмитрий Мамедиев сказал:

Как понять

Вы прочли раздел про операторы? Знаете, что обозначает оператор == ? Что обозначает оператор || ? Что такое символ (символьная константа) знаете? Если не знаете - прочтите. 

Просто замените все операторы и остальные "элементы" в строке их названиями, а потом произнесите вслух получившееся предложение - на начальной стадии освоения это на 100% даст ответ на вопрос "как понять".

Если не получится - напишите здесь, что получилось, попробуем пояснить, что не так делали. Если получится, поделитесь успехом - возликуем вместе с вами :) 

Edited by ARV

Share this post


Link to post
Share on other sites

Операторы && и &, а так же || и | в Си принципиально разные, путать их ни в коем случае нельзя.

&& - логическое И

& - битовое (двоичное) И

|| - логическое ИЛИ

| - битовое (двоичное) ИЛИ

Результат любого ЛОГИЧЕСКОГО оператора может быть ТОЛЬКО 0 (не истина, ложь) или 1 (истина). Какие бы числа/переменные вы ни обрабатывали этими операторами, в итоге будет или 0, или 1.

Результат БИТОВЫХ операций может быть ЛЮБЫМ ЧИСЛОМ, т.к. происходит операция над каждым БИТОМ каждого из пары чисел/значений.

Примеры:

1 && 2 результат 1 (любое число, не равное 0, для ЛОГИЧЕСКОГО оператра эквивалентно 1)

1 & 2 результат 0 (биты в числах не совпадаеют, а значит при побитовом И в каждом бите получится 0, что в итоге даст и общий 0).

Только что, Дмитрий Мамедиев сказал:

В книжке был такой пример: x=1 y=2 тогда x&y получим 0, x|y 3, x||y почемуто 2,

x || y не может быть 2 ни при каких условиях - или книжка говно, или вы что-то не поняли и/или не так процитировали.

Edited by ARV

Share this post


Link to post
Share on other sites

Руководство для разработчика приложений на базе STM32WB55

Представив двухъядерные беспроводные микроконтроллеры STM32WB для IoT-приложений, компания STMicroelectronics предлагает разработчикам экосистему, включающую в себя отладочные платы, примеры кода для микроконтроллера, готовое ПО всех уровней и большой массив документации.

Читать статью

                     

DC/DC-преобразователи: принципы работы и уникальные решения Maxim Integrated

Что нового можно сказать про DC/DC? Написаны десятки статей, а самостоятельное изготовление преобразователя мощностью от единиц Вт до нескольких кВт даже в домашних условиях не составляет большого труда. Тем не менее, когда речь идет о микро-, или даже нано-ваттах, проектировщик может столкнуться с рядом трудностей. Разработка устройства с батарейным питанием весьма малой мощности – одна из наиболее актуальных и интересных задач во время всепроникающего интернета вещей. А грамотная схемотехника системы питания не возможна без знания основ работы DC/DC преобразователей. Освежить базовые знания и узнать об особенностях проектирования узлов питания мобильного устройства с оптимальным энергопотреблением можно из следующей статьи

Подробнее

Только что, Дмитрий Мамедиев сказал:

Почему нельзя например так int (0>=x >5);

То, что вы написали, вообще не имеет смысла: x меньше или равно нулю, и при этом x больше пяти - такого не может быть в принципе.

А вообще на счет цепочечных сравнений скажу так: вы должны учитывать, что операторы одинакового приоритета исполняются слева направо. Т.е. сначала сравнится 0 >= x, а потом то, что получится, сравнится с пятеркой. Поскольку результатом логического оператора всегда будет только 0 или 1, то второе сравнение всегда даст ложный результат, т.к. и 0 и 1 меньше пяти.

Используйте традиционную проверку на вхождение в диапазон: if((x >= 0) && (x < 5)).

Share this post


Link to post
Share on other sites

Еще вопрос. Подключаю лсд 1602. По стандартной схеме, когда используются пины 4567, все ок. Но мне нужно подключить 0123 пины мк, так вот на лсд тоже нужно использовать 0123?

Share this post


Link to post
Share on other sites
1 час назад, Дмитрий Мамедиев сказал:

Мне нужна переменная в определенных пределах. Почему нельзя например так int (0>=x >5);

ну я тебе и написал,  только придел ты задал [1:4] ,я конкретно под него и написал

 

6 минут назад, Дмитрий Мамедиев сказал:

Еще вопрос.

а теперь то же самое только по русски

Share this post


Link to post
Share on other sites

Я не понял как трактовать ваш пример. По поводу лсд. У меня свободны остаются пины порта д только 0123, через них нужно подключить дисплей. В сети примеры подключения только когда используются старшие пины портов и мк и лсд. Если я подключаю мк через 0123 то на лсд тоже нужно использовать пины 0123?

Share this post


Link to post
Share on other sites
8 минут назад, Дмитрий Мамедиев сказал:

...Если я подключаю мк через 0123 то на лсд тоже нужно использовать пины 0123?

А какая связь между нумерациями портов LCD и МК?

Share this post


Link to post
Share on other sites
Только что, Дмитрий Мамедиев сказал:

Если я подключаю мк через 0123 то на лсд тоже нужно использовать пины 0123?

Вопрос странный. Вы же подключаете к микросхеме сигналы на её ножки в соответствии с их назначением, а не так, как вам удобно. С чего вдруг на ЖКИ (ЛСД - этот наркотик, а ЖКИ - это по-русски LCD - жидкокристаллический дисплей) вы будете подключать сигналы не в соответствии с назначением контактов ЖКИ, а как вам удобнее?

В микроконтроллере переназначить пины можно программно - это всегда можно, а произвольно назначать выводы ЖКИ - это перегиб.

Share this post


Link to post
Share on other sites
Только что, Дмитрий Мамедиев сказал:

Можно подключить на мк к пинам 0123 а на лсд 4567?

Конечно можно. Я ж вам намекал: если у микросхемы нужный пин имеет номер 7, это ведь не означает, что только с 7-го пина МК можно подавать сигнал на него. Из МК вы можете сформировать нужные сигналы практически на произвольных его ножках.

Share this post


Link to post
Share on other sites
42 минуты назад, Дмитрий Мамедиев сказал:

Я не понял

любое число при логическом умножении на 3 (0b00000011) даст числа [0:3]

на 7 (0b00000111) даст числа [0:7] , на 15 (0b00000011) даст числа [0:15]

у тебя диапазон  [1:4] на единицу больше диапазона [0:3]

z--;  // вычли единицу, получили диапазон [0:3]
z&=3; // обрезали
z++; // прибавили единицу , вернули диапазона [1:4]

50 минут назад, Дмитрий Мамедиев сказал:

В сети примеры

выводы МК могут быть любыми , выводы ЖКИ при 4битном подключении только <4:7>

Share this post


Link to post
Share on other sites
void lcd_com(unsigned char com)
{
	PORTC &= ~(1 << RS); // RS = 0 (запись команд)
	PORTC |= (1 << EN); // EN = 1 (начало записи команды в LCD)
	PORTD &= 0xF0; //обнуляем 0:4 пины порта Д
	PORTD |= (com >> 4); // старший нибл
	_delay_us(100);
	PORTC &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
	_delay_us(100);
	PORTC |= (1 << EN); // EN = 1 (начало записи команды в LCD)
	PORTD &= 0xF0; //обнуляем 0:4 пины порта Д
	PORTD |= (com & 0x0F); // младший нибл
	_delay_us(100);
	PORTC &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
	_delay_us(100);
}

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

Share this post


Link to post
Share on other sites
Только что, Дмитрий Мамедиев сказал:

не получается все равно

Схему в студию.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Sl653
      Доброй ночи. Продам Segnetics SMH4 новый в упаковке. 14 т.р. и УПП Siemens Sirius 3RW4036 29т.р. тоже новый. Если кого заинтересовало то пишите на почту sl.s@inbox.ru
       
       


    • By Jesterary
      Здравствуйте. Подскажите, был ли у кого-то опыт отправки изображений с камеры (подключенной через UART или bluetooth-камеры) через GPRS (у меня модуль SIM800L, но в целом это не принципиально) на удаленный сервер? Средствами управляющего микроконтроллера, пусть даже ардуины какой-нибудь, но не малины. Возможно ли это вообще? Хотелось бы, конечно, использовать в проекте беспроводную камеру и общаться с ней, ибо камеры, подключаемые напрямую так себе качество дают. 
      Сразу скажу, что важна именно такая связь. Микроконтроллер + модуль связи + камера находятся в коробке и путешествуют по городу, в это время человек сидя дома на диване может смотреть фото с этой камеры. Смартфон для моих целей не подойдет, суть именно в микроконтроллере с модулями.
      Если у кого-то такое получалось - поделитесь, пожалуйста :)
      А то нахожусь в некоторой прострации и даже не знаю, в какую сторону думать.
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Anton Bondarenko
      Всем привет
      Прошу не ругать, впервые подобный вопрос задаю.
      Хочу сделать прибор, который будет посылать сигнал, когда возле прибора будет проходить металлический предмет. 
      — угол отслеживания до 30° а лучше прямая линия, траектория
      — время реакции очень высокое до 100 мс
      — ширина проема в котором нужно сканировать от 10 до 20метров,
      — передача сигнала через вифи
      Может есть готовые решения, или отдельные компоненты.
      Подскажите пжл в каком направлении искать.
      Смотрел датчики движения, но главная проблема — время реакции.
      Спасибо
       
    • By Sofia Vin
      Предлагаем проектную работу в Москве:
      Микроконтроллер STM32F103.
        
      Есть встроенный код с использованием функций библиотеки FreeRTOS, код имеет описанный протокол для связи с внешним миром.
        
      Необходимо проводить доработку кода под задачи программиста верхнего уровня и его тестирование в составе оборудования. 
      Работа в лаборатории (м.Университет) и удаленно. 
      Оплата по договоренности.
      Если Вы обладаете опытом схемотехнического проектирования и программирования микроконтроллеров, и Вас заинтересовала данная возможность, ждем Ваши отклики по контактным данным:
      8 (925) 023-60-02   Алексей
      E-mail: nassa@marathon.ru
       
  • Сообщения

    • Спасибо за советы. Просто первый раз столкнулся с таким выключателем.  Запутался ещё  с положением кнопки вверх/вниз. Общепринято вниз - выкл, и на схеме указано когда выкл - горит индикатор. А если подключить  лампочку к свободному X  то она будет загораться когда кнопка вниз. Не по феншую. Подведут значит ноль и иксы между собой поменяю. 
    • К сожалению выпал на некоторое время из Он-лайна. Все, вернулся. Очень рад, что вы тут без меня не скучали а контроллер уже живет не только на моем столе!!! Да, пока на столе, до корпуса так руки и не дошли. Наверно потому, что программировать железки интереснее, чем их пилить и сверлить .  Посему двигаемся дальше на пути к совершенству, публикую первое обновление прошивки, в которое вошли  исправления, изменения и новые планировавшиеся функции: Новые функции и изменения: Масштабирование на всю ширину экрана надписей селектора при разном количестве входов При изменении в настройках количества входов, текущий запомненный вход сбрасывается в 1, если установлено меньшее число входов При переключении в настройках типа АС, запомненное состояние сбрасывается в Выключено Возможность установки любых PCF8574 с "A" и без   В список входов добавлен Aux ( @Юрий Воропаев ). Если надо еще что-то, пишите, добавим   В Настройки добавлено включение/выключение отображения индикатора уровня ( @Юрий Воропаев , да я и сам собирался  ) Увеличен динамический диапазон индикатора уровня Улучшена настройка "0" индикатора уровня (мерцание первых сегментов)  Добавлено отображение времени аварии на экранах с ошибками (при включенных в настройках часах) Добавлен Mute по долгому нажатию Энкодера ( @valikow ) Для каждого входа теперь есть Аттенюатор. Он необходим например когда есть несколько источников с разным уровнем выходного сигнала и хочется иметь одинаковый уровень громкость для всех входов. Можно уменьшить/увеличить ослабление РГ до 10дб. При этом реальная устанавливаемая громкость будет "На экране" + значение аттенюатора. Вход в аттенюатор - длительное нажатие на кнопку конкретного входа, регулировка - энкодером. Если кнопки прямого выбора не установлены, предусмотрен вход через нажатие кнопки энкодера. При регулировке аттенюатора, переключение входов блокируется. Выход из режима регулировки аттенюатора - по неактивности 10 сек. или нажатии кнопки энкодера. При работе с РГ Никитина есть некоторое ограничение. Если установлено положительное значение аттенюатора и реальная громкость "На экране" + значение аттенюатора больше 0дб, в РГ грузится 0дб. При работе с PGA и установленным максимальным диапазоне регулировки до 0дб такого ограничения нет, так как у PGA есть возможность усиления до +32дб. Остался вопрос с индикацией. Как думаете, куда и что вывести на экран? В новом контроллере энергонезависимая память распаяна отдельно и не обновляется при обновлении прошивки. С одной сторны это хорошо, так как после перепрошивки данные сохраняются и не требуется перенастройка контроллера. Но с другой стороны, если в новой прошивке поменятся формат сохраненных данных, они прочитаются некорректно и норамальный старт будет невозможен. Поэтому в прошивку добавлен механизм, сбрасывающий сохраненные данные в состояние по умолчанию, если это необходимо и оставляющий не тронутыми, если это возможно. Он включается при первом старте после перепрошивки. Если сохраненные в eeprom данные сброшены, появляется уведомление об этом, что необходимо зайти в настройки и заново все сконфигурировать под ваше железо. Если это не нужно, контроллер стартует как обычно и нет необходимости заново все настраивать и привязывать пульт. Баги: Исправлено отображение часов в рабочем режиме ( @welex ) Исправлено сохранение часов при подключенной батарейке и выключении питания ( @welex ) Исправлено поведение пунктов меню настройки ДУ - баланса и тембров  ( @Юрий Воропаев,  @welex ) Исправлено мигание экрана при входе в меню настройки  Прошивка Ctrl-Amp2 V1.1:  CtrlAmp2-V1.1.hex При переключении входов сначала выключаются все реле РГ, переводя его в максимальное ослабление, потом переключается вход и восстанавливается громкость. В последних прошивках первого контроллера заложен такой-же алгоритм. Надо проверить, работает ли он, должно щелкать так же .  В новой прошивке сделал не полное выключение реле а установку минимальной громкости из настроек, как у первого контроллера. Будет щелкать немного меньше, но будет. Теперь к этому еще добавилась обработка аттенюатора - после переключения устанавливается громкость с учетом его настройки. Есть такое.  Пока не придумал как, просто написать "Директ" как-то банально . Есть ли какой-то стандартный графический значок? Так ноги все уже использованы . Для облегчения запуска есть мысль сделать выдачу лога на USART, тогда будет точно видно что происходит без экрана и светиков. Действительно надо будет сделать инициализацию часов при старте только в случае включения их в настройках. И по умолчанию сделать их отключенными. Это облегчит старт и позволит не устанавливать кварц, если часы не нужны. Так что, Юрий, ваши мучения не напрасны ,  буду дописывать. Нет.  Да, разъемы сверху и снизу платы меняются на прямые. Немного не рассчитал с разъемом под USB, на него в таком варианте налезает разъем защиты. Нашел в загашнике из распая XH на 9 пин, срезал с него боковинки, удалось воткнуть вместо PLS на кнопки, вот как это выглядит:
    • от лампОчки идет два провода. один, тот что от центрального контакта, подключаем к Х1. там их два, нам нужен свободный. второй, тот что идет от цоколя с резьбой подключаем к N. сюда же подключим земляной провод из линии, а фазный провод к L1. всего к выключателю придет 4 провода (конца) так как один провод может быть целым, нулевой.
    • @Ekho посмотрите в сторону модулей dps/dph  Можно намотать вторичка под них. У вас будет ампер 10 под эти модули, что вполне. А если сделать отвод /отводы на вторичке под классическую схему на трёх ОУ, то ещё получите и стабильный линейный БП со сравнительно малыми пульсациями. Итого у вас в одном флаконе будет и стабильный линейный БП для малых нагрузок, почти ЛБП,  и источник питания для модулей, которыми можно запитать прожорливые потребители для каких-то тестов    
    • Можно все что угодно, подходящее по можности. И выбрать на слух лучший вариант ))
    • отключить выход УВ от коммутатора, подать питание на модуль и сигнал с него, согласовав по уровням, подать на коммутатор ... Открывай схему и делай ...
×
×
  • Create New...