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

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


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

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-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 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 пользователей онлайн

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

  • Сообщения

    • Все предложенные к рассмотрению источники питания работают примерно по одному принципу: сетевое напряжение выпрямляется, фильтруется (получаем чуть больше 300 вольт постоянного), затем преобразуется снова в переменное, но уже на частотах в несколько десятков килогерц, понижается на трансформаторе и снова выпрямляется. За счёт высокой частоты преобразования используется трансформатор на ферритовом, а не на стальном, сердечнике, гораздо меньших габаритов и стоимости. Минусы: значительное усложнение схемы блока и вероятность возникновения различных помех от него. Модули управления (кроме первого) также являются импульными преобразователями, с теми же достоинствами и недостатками. Если нужно по быстрому собрать некое подобие ЛБП, то уж лучше брать модуль вроде этого. Ну и блок питания к нему соответствующий. Но не очень понятно, какой практический опыт можно получить от соединения готовых модулей парой проводов.  
    • У меня больше всего вопросов вызвала необычная схема обеспечения отрицательного питания. Автор этой обстоятельной заметки пишет: For this supply to work correctly, the transformer must have a secondary voltage of at least 18V RMS.  Почему? Что будет не так с отрицательным питанием, если напряжение на трансформаторе будет меньше 18В?   https://tinyurl.com/23mlwxtt - я в простейшей эмуляции ставлю 12В пикового напряжения для трансформатора и на стабилитроне все как положено: -5.6В.
    • Согласен, очень криво объяснил. Это работа трёх вольтовой линии, просто на диод шотки сдвоенный, на один анод приходит сигнал напрямую с трансформатора, а на второй через дроссель. Вольт/деление 5 вольт в клетке, тайминг по моему 10 МС. Третья фотография это сигнал на катодах уровень земли ровно по центру экрана. Но все линии по итогу в порядке 3.3 в, 5, в, 12 в и -12 в. Нагрузить все линии не могу сразу ,так как тут же выгорают транзисторы (имеется нагрузка 250 ватт по 10 ампер на каждую линию за исключением-12в), поэтому нагружаю 3.3 вольтовую линию на 10 ампер,  подключаю переменный резистор 50 ватт на 15 ом на 5 вольтовую линию и постепенно довожу до той той картины с перекосом (это гдето  50 ватт общее). По поводу микросхемы, вверху имеется скрин где между импульсами проскакивает мини импульс, если так можно сказать, он проскакивает и на одной  и на второй ноге (7,8). Микросхема не tl 494, а lw4933/abx942.1/c9421646. Далее они приходят на базы транзисторов 945g  коллекторы этих транзисторов соединены с  выводами трансформатора. Просто схема типовая, легче мне кажется просто привести фото самого блока, для тех кто разбирается будет гораздо информативне.  Диод шотки по 12 вольтовой линии был подгоревший, заменил на донора. Приводить скрины не буду что бы не захламлять тему. В итоге, пока все так же, при достижении определенной нагрузки суммарно где-то 50 ватт, появляется этот "выброс и перекос". По этому имеются мысли на два варианта, это микросхема , этот мини импульс между периодами, на низкой нагрузке особо не влияет, но при достижении определенной приводит с самовозбуждению входной цепи и непроизвольному открытию транзистора нижнего плеча. Либо дело в "горячей части", плавающий дефект в обвязке силовых ключей.  Спасибо за ответ.
    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
  • Похожий контент

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