Jump to content

Recommended Posts

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

Как понять

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

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

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

Edited by ARV

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

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

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

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

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

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

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

Результат любого ЛОГИЧЕСКОГО оператора может быть ТОЛЬКО 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

Безмостовые ККМ для 99% КПД!

Схема коррекции коэффициента мощности (ККМ) на основе так называемого «тотемного столба» (Totem Pole) обладает минимально возможными потерями и потенциально может обеспечить самые жесткие требования к энергоэффективности источников питания. Компания Wolfspeed представляет референсную разработку – плату ККМ CRD-02AD065N на базе собственных карбид-кремниевых MOSFET и диодов с наилучшими в отрасли характеристиками.

Подробнее

Гибридные IGBT - сила Si и SiC в одном корпусе!

Компания Infineon представила новые гибридные IGBT-транзисторы на 650 В, которые сочетают в себе преимущества технологий TRENCHSTOP и CoolSiC. Использование SiC-диода Шоттки позволяет значительно расширить возможности IGBT и снизить уровень энергии, необходимой для включения транзистора (Eon), а также уменьшить потери на переключение.

Подробнее

Вебинар «Параметры выше, цена ниже. Обновление в линейке AC/DC- и DC/DC-преобразователей MORNSUN» (26.01.2021)

Приглашаем 26 января на бесплатный вебинар, посвящённый преимуществам и отличиям новых источников питания и DC/DC-преобразователей Mornsun. На вебинаре будут рассмотрены изолированные и неизолированные DC/DC-преобразователи последнего, четвертого, поколения (R4) и компактные модульные источники питания второго и третьего поколений (семейства LS/R3 и LD/R2) на плату. Рассмотрим новую группу продукции – встраиваемые источники питания в кожухе.

Подробнее

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

Почему нельзя например так 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 Обычный Человек
      Микроконтроллер ATmega328p, внешний кварц 16МГц. Компилятор avr-gcc с оптимизацией O1

      Написал код для управление шаговым двигателем. Работает так: требуемая скорость задается переменной STP1_ReqSpeed, дальше с частотой 100Гц срабатывает таймер TIM0, который высчитывает с какой частотой надо подавать сигналы на вход шагового драйвера. TIM1 работает в режиме частотно импульсной модуляции и по прерыванию меняет значение пина на противоположное.

      Управление работает, скорость регулируется, но по какой то причине случаются пропуски шагов. Чаще всего во время ускорения. Количество пропусков от 0 до 4, обычно 2-3, длятся 32мс.

      Из кода вырезал неиспользуемое. Заменить прерывания на аппаратный ШИМ возможности нет. Как убрать эти пропуски?
      Осциллограммы:
       
       
    • By Aristarkh
      Куплю / приму в дар несколько штук Atmega48 / Atmega88 / Atmega168 / Atmega328 в DIP-е 
      Я в Москве, можно почтой 
    • By Женя Соловьев
      Всех приветствую и надеюсь на Вашу помощь по следующему заданию:
      Разработать принципиальную схему прибора с цифровой индикацией измеряемой величины, предназначенного для измерения среднего постоянного тока положительной шины питания нагрузки. Потребление от шины питания постоянного тока может носить импульсный характер. Минимальная частота импульсов может составлять 50 Гц.
      Диапазон измеряемого тока: 0-20 А. На индикаторе отображать величину тока с точностью, не менее 100 мА.
      Время индикации – 1с. Запуск автоматический.
      Как я себе представляю реализацию данной задачи: 
      Первым блоком будет датчик тока, его я хочу взять резистивный , но не до конца понимаю смогу ли добиться такой точности с помощью него, далее нужен по сути фильтр НЧ для выделения постоянной составляющей, далее нужно куда-то впихнуть по сути МВ для обеспечения индикации каждую секунуд, ну и далее на АЦП и на индикатор тут вопросов в принципе не создается, АЦП наверное будет с двойным интегрированием. По первой части большие сомнения того, как будет выглядеть схема, если есть возможность как-то показать как будет выглядеть схема то отлично, если нет, то литература и Ваши мысли очень приветствуются.
       
    • By olezka18
      Здравствуйте! Принесли зарядное, не заряжает, поискал поиском, подобного не нашел. Как и схемы для него, с виду довольно неплохое ЗУ

    • By Alejandro Kots
      Приветствую знатоки радиоэлектроники. 
      нужна помощь, я любитель, Не силён в радио электр.. Не ругайтесь))))
      В общем нужна помощь по сборке контроллера для управления двигателем (редукторный на 12в). 
      к контроллеру подключён сенсор влаги, дождя или как хотите назовём, При замыкании на нем контактов подаётся сигнал на двигатель ( закрывается) . Пробовал обычной платой с реле - работает, но сырое все, нужно сделать практично типа и Led состояния, и лэды для сенсоров и пару кнопок управления двигателем вручную. 
      Что посоветуете? Ардуино думаю не вариант. Какие контроллеры есть? Надо программируемый или нет? Направьте на путь истинны ) спасибо
       
       
       

×
×
  • Create New...