Перейти к содержанию

Вопросы от начинающих по МК


Рекомендуемые сообщения

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

Без меня, вы меня можете даже бить

Поверьте, я ничего плохого против вас не имел и не имею, если я и упомянул вас то только как пример.

Вы кстати Протеус пробовали юзать?

Изменено пользователем Demonrostov
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Господина Мамедиева обидел, вероятно, я. 

Правда он вряд ли укажет где и в какой форме, но мне это в общем безразлично. 

Я просто фиксирую реальное положение вещей. 

На обиженных обычно возят воду... 

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я ответил на поставленные автором вопросы. 

Могу добавить. 

Отсутствие очистки в графических дисплеях носит чисто топологический характер. Ее придется делать программно, но силами встроенного контроллера дисплея. Протянуть единый сброс через все экранное ОЗУ - бессмысленная и топологически громоздкая задача. ОЗУ дисплея может вообще быть динамическим, то есть в принципе не иметь входа сброса у ячеек. 

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

void lcd_com(unsigned char com)
{
	PORTC &= ~(1 << RS); // RS = 0 (запись команд)
	PORTC |= (1 << EN); // EN = 1 (начало записи команды в LCD)
	PORTD &= 0xF0; PORTD |= (com >>4); // старший нибл
	_delay_us(100);
	PORTC &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
	_delay_us(100);
	PORTC |= (1 << EN); // EN = 1 (начало записи команды в LCD)
	PORTD &= 0xF0; PORTD |= (com & 0x0F); // младший нибл
	_delay_us(100);
	PORTC &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
	_delay_us(100);
}
// Функция передачи данных
void lcd_data(unsigned char data)
{
	PORTC |= (1 << RS);PORTC|=(1 << EN); // RS = 1 (запись данных), EN - 1 (начало записи команды в LCD)
	PORTD &= 0xF0; PORTD |= (data >> 4); // старший нибл
	_delay_us(100);
	PORTC &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
	_delay_us(100);
	PORTC |= (1 << EN); // EN = 1 (начало записи команды в LCD)
	PORTD &= 0xF0; PORTD |= (data & 0x0F); // младший нибл
	_delay_us(100);
	PORTC &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
	_delay_us(100);
}

хочу передавать на экран 1601 но использовать младшие четыре порта д. в протеусе видно что команда проходят но ничего нет на экране.  

Ссылка на комментарий
Поделиться на другие сайты

и не должно быть на экране.

нибл нужно выставлять в порт ДО установки сигнала EN.

задержки перед снятием сигнала EN не надо делать.

задержки между передачами ниблов не должно быть.

Мудрость приходит вместе с импотенцией...

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

Ссылка на комментарий
Поделиться на другие сайты

13 минуты назад, Starichok сказал:

нибл нужно выставлять в порт ДО установки сигнала EN.

задержки перед снятием сигнала EN не надо делать.

задержки между передачами ниблов не должно быть.

Все 3 ответа - неправильные.
Типовая диаграмма для 1602 :

2019-06-04_19-34-28.png.7d93846df0bd9649bb635eb84030b56f.png

PS: А проблему я уже назвал. Нетрудно после подсказки её найти.
Я бы даже сказал, что это не подсказка, а прямо сказано что и где не так :)

Ссылка на комментарий
Поделиться на другие сайты

ну, с первым ответом, строго говоря, я был не прав.

но это не принципиально. данные без проблем можно выставить раньше, чем сигнал Е. главное, сигнал Е нужно снять раньше, чем будут изменены данные.

по второму и третьему ответам.

при выполнении строки

PORTC &= ~(1 << EN)

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

или ты готов согласиться, что задержка 100 мкс там необходима?

Мудрость приходит вместе с импотенцией...

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

Ссылка на комментарий
Поделиться на другие сайты

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

не помогло

Обидно <_<

19 минут назад, Starichok сказал:

или ты готов согласиться, что задержка 100 мкс там необходима?

100 мкс там - как вечность для нас. Тут тяжело не согласится :)

PS: @Дмитрий Мамедиев , у Вас в руках достаточно хороший инструмент для отладки. В чём проблема ? Или мы всем тут форумом будем гадать на кофейной гуще ? В то время, как Вы сможете проблему отловить за несколько минут, пошагав по программе.
Вы может там с настройкой порта чего накосячили, нам же не видно...

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, Alex сказал:

Вы может там с настройкой порта чего накосячили, нам же не видно...

Кстати была у меня одна проблема, вот только в железе не работало а в протеусе усе нормуль. Долго я ломал голову. Оказалось в "моем" протеусе пофиг ваще как настроен порт на вход или на выход. Т.е. у меня не было настройки порта на выход, но протеусу это как то совсем не мешало. Ведать подтяжки резюка ему хватало.

Изменено пользователем Demonrostov
Ссылка на комментарий
Поделиться на другие сайты

Был на работе на смене. Читал "программирование для чайников". Начинается с матиматики и потом пошло поехало... классы, конструкторы, деструкторы... и тд и тп. Не понял как это мне поможет. Читаю следующую. Понятней написанно но... у нас как бы другая специфика чтоли. Тут лучше был бы пример как пользоваться побитовыми сдвигами, на подобии того как мне подсказал уважаемый ИМХО. Или как создать меню, или другие уловки.

Ссылка на комментарий
Поделиться на другие сайты

Какое меню?! Какие уловки?! Какие чайники?! Вы ещё надписи на заборах почитайте! 

По Си надо читать Кернигана и Ричи, никаких классов, деструкторов, плюсов и шарпов для кофейников!

А сдвиги и битовые операции надо просто на бумажке в клеточку разрисовать самому пару раз, и все. Не надеяться, что кто-то или где-то вам объясняет все ваши непонятки.

И двигаться постепенно, а не так, что сегодня я впервые помигал светодиодов, а завтра сделаю меню на ЖКИ. Меню - это почти 100% применение указателей, а какие могут быть указатели, если и с массивами вы не разобрались?!

Не хватайте штангу в 150 кг, если первый раз в качалку зашли - только надорветесь. Начинайте с малого веса, а потом наращивайте подходы, и лишь затем вес. То есть после мигания одним светиком освойте бегущие огни, потом плавное изменение яркости, потом чарлиплексинг и/или динамическую индикацию и т.д.

Изменено пользователем ARV

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

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, ARV сказал:

Меню - это почти 100% применение указателей

я свое первое меню сделал на функциях:D без указателей, я тогда плохо понимал что это удобный инструмент.

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

Читал "программирование для чайников"

Есть куча видосов на ютубе, где очень даже хорошо на примерах рассказывают основы языка си. Например Александр Писанец.

Здесь посмотрите еще.

Ссылка на комментарий
Поделиться на другие сайты

Только что, Demonrostov сказал:

я свое первое меню сделал на функциях:D без указателей

Я об этом и говорил: сначала что-то понятное, потом более сложное и не понятное. Если бы вы начали с указателей, то поседели бы раньше времени :) 

Обычно так и получается с меню: сначала многоуровневые switch-и, потом массивы, потом массивы структур, потом (внезапно!) оказывается, что разница между массивом и указателем ничтожная, и наступает период указателей.

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

Ссылка на комментарий
Поделиться на другие сайты

11 минуту назад, Demonrostov сказал:

Например Александр Писанец.

смотрел и подписан.

 

7 минут назад, ARV сказал:

то поседели бы

с 18 лет начал сидеть. уже почти белый

10 часов назад, ARV сказал:

Кернигана и Ричи

скачал сегодня буду вечерогм читать

Ссылка на комментарий
Поделиться на другие сайты

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

с 18 лет начал сидеть

Поздновато начали :) Обычно дети сидеть начинают к 5-6 месяцам :) 

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

Ссылка на комментарий
Поделиться на другие сайты

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

Как понять

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

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

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

Изменено пользователем ARV

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Результат любого ЛОГИЧЕСКОГО оператора может быть ТОЛЬКО 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 ни при каких условиях - или книжка говно, или вы что-то не поняли и/или не так процитировали.

Изменено пользователем ARV

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...