Jump to content

Recommended Posts

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

Простые ответы на вопросы чаще всего самые бессмысленные. 

Ответы должны соответствовать уровню вопрошающего.

Глупо ученикам 1-го класса рассказывать, что можно от 1 отнимать 2, а в пятиклашкам, что можно излекать корни из отрицательных чисел. Лучше давать понятные и простые ответы, даже если они не являются абсолютно верными - всему своё время.


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

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Новинки и уникальные решения Molex. На что обратить внимание и почему»

15 апреля приглашаем на вебинар, который будет интересен разработчикам и инженерам-схемотехникам, интересующимся тенденциями рынка, новыми перспективными решениями для соединений «провод-провод», «провод-плата», «плата-плата». Для инженеров КИПиА и IT будут освещены уникальные решения Molex для «удлинения» интерфейсов HDMI, DisplayPort и USB даже в условиях сильного зашумления, а также семейство бесконтактных датчиков Contrinex. Помимо этого, будет уделено внимание дальнейшему развитию направления антенн, где Molex имеет ряд интересных и уникальных решений.

Подробнее

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

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

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

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

Edited by Demonrostov

Share this post


Link to post
Share on other sites
                     

Выбираем преобразователь для портативных устройств

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
2 минуты назад, my504 сказал:

но мне это в общем безразлично. 

Так же как и ответить по сути вопроса.

Share this post


Link to post
Share on other sites

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

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

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

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; 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 но использовать младшие четыре порта д. в протеусе видно что команда проходят но ничего нет на экране.  

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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


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

Share this post


Link to post
Share on other sites
13 минуты назад, Starichok сказал:

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

PORTC &= ~(1 << EN)

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

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


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

Share this post


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

не помогло

Обидно <_<

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

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

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

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

Share this post


Link to post
Share on other sites
17 часов назад, Alex сказал:

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

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

Edited by Demonrostov

Share this post


Link to post
Share on other sites

Да проблем может быть куча. Только вот человек молчит что-то, как партизан :ph34r:

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Edited by ARV

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

Share this post


Link to post
Share on other sites
9 часов назад, ARV сказал:

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
Только что, Demonrostov сказал:

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

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

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


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

Share this post


Link to post
Share on other sites
11 минуту назад, Demonrostov сказал:

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

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

 

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

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

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

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

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

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

Share this post


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

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

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


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

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 MirVsem
      Добрый день.
      Есть интересные модули ибп для слаботочки до 1А.
      m.aliexpress.ru/item/4000109380893.html
       По цене идеально подходит для зоопарка роутеров, IoT устройств... Переключение на резерв (туда-обратно) без просадки. Зарядка литиевой банки как положено, всякие защиты от перегрузки и прочее. Казалось бы все замечательно. 
      НО как всегда не без ложки дёгтя.
       Защита от переразрядки работает неадекватно. Хотя возможно это не сама защита, а повышающий модуль. На пороге ~3в у него срабатывает циклический перезапуск и так пока банка не просядет ниже 3в. Точно померять нечем.
      Из наблюдений. Проверил напряжение переключается с 12в на 9в и щелчки. Естественно нагрузка в это время дико насилуется (роутер свистит минут 5 пока полностю не отключится)
      Вопрос к гуру. Возможно ли что-то доработать в даном модуле чтобы исправить этот досадный баг?
    • By Юлия Михайлова
      Требуються люди умеющие работать с микроконтролерами esp 32 и stm32 , так же будет плюсом опыт работы с raspberry , требования опыт работы не мение 1,5 года , возраст не старше 35 лет , готовы взять на удаленную работу просьба отправлять резюме , и звонить по номеру +380 (68) 227 82 52
    • Guest Роман
      By Guest Роман
      Добрый день, форумчане. Такая задача. Хочу создать несколько устройств на светодиодах. Задача каждого в том, чтобы от движения (датчик вибрации, наклона) светодиод начинал моргать, переливаться и т.д. Подпитывается всё от батарейки, конечно же как можно меньших размеров (таблетка).
      Собственно я уже реализовал такое пробное устройство на ATtiny13, вибродатчике 18015 и батарейке CR1220. Всё работает, но хотелось бы это дело и удешевить и уменьшить в размерах, если это конечно же возможно. Особо в параметрах МК я не разбираюсь, но могу сказать что мне от неё точно нужно:
      1) Маленький размер
      2) Как минимум 1 канал ШИМ (а лучше 3, для переливания трёх светодиодов RGB)
      3) Память на 1Кб (программу для одного такого устройства приложу ниже, может её можно и сократить, но не факт что такую же, но на три диода получится ужать)
      4) Низкое потребление или возможность подключения режимов с низким потреблением.
      5) Работа от 3В. (от таблетки)
      6) Возможность программирования через Arduino UNO (но другие варианты тоже рассматриваю, просто Arduino уже есть)

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

      Очень надеюсь на Вашу помощь. Заранее большое Вам спасибо!
      Прикладываю обещанный мною код:
      int vib = 4; int led = 0; long loopTime = 5000; void setup() { pinMode(led, OUTPUT); pinMode(vib, INPUT); } void loop() { if (digitalRead(vib)){ unsigned long currentMillis = millis(); while(millis()-currentMillis<=loopTime) { for(int fadeValue = 0; fadeValue <=255; fadeValue+=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 255; fadeValue >=0; fadeValue-=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 0; fadeValue <=255; fadeValue+=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 255; fadeValue >=0; fadeValue-=5){ analogWrite(led,fadeValue); delay(2); } digitalWrite(led, LOW); delay(600); } } }  
    • By Sambler
      У меня была похожая тема,  я решил проблему установив в include util/delay.h
      Но возникла еще одна ошибка, не могу понять, что оно хочет


      p.s. Я обещал, что предыдущая - последняя тема, но я ошибся, не думал, что тут 2 разные программы будут. В этот раз 100 процентов последняя тема и пойду сдавать работы Ы)

       

    • By LemonTV
      Есть картинка из сайта с фьюзами, есть программа avrdude_prog3.3 Как выставить правильно фьюзы чтобы не испортить мк? Незнаю как это сделать есть прямые и инверсные фьюзы, ГДЕ СТАВИТЬ ГАЛОЧКИ И КРУЖОЧЕК НА ПРЯМЫХ ИЛИ ИНВЕРСНЫХ?


  • Сообщения

    • ну-ну, расскажи всем, кто пользует мои двухэтажники, как у них что-то там выгорает Смешной ты, однако. Хоть и баран. Ты ж не знаешь, какие именно изменения внёс Платошкин в схему, которую он увидел от меня ))))) Или знаешь? - но тогда тебе в медиумы пора  с синдромом ясновидения. А чё толку перепираться с таким бараном, как ты, когда он ничего, кроме своего собственного блеяния, не понимает?  Встать рядом с ним и так же блеять ему в морду, пусть и матом - это ниже моего достоинства. Пасись, нагуливай курдюк, короче.  
    • Щас смотрел тему про Радиокота и подумал: интересно, в природе есть хоть один радиолюб, который никогда не строил усилки?
    • А что ты пытаешься разглядеть? усилитель - как усилитель. Правда, ТДАшный маленько...
    • БФ-2 только не БФ-6 )  
    • Подклеивать дорожки можно клеем БФ (тонким слоем), после чего прижать горячем жалом и дать клею полимеризироваться, но в любом случае, делать надо очень аккуратно ...
    • Вообще – не должно. Но эта схема слишком уж простая  и старая. И поэтому в ней отсутствует ограничение зарядного тока при повышенном напряжении на аккумуляторе. VT8 включает ЗП-01 «на все деньги» при падении напряжения на аккумуляторе менее чем до 10,8в. Причем, включает только в режиме «запуск». Этот транзистор никак не связан с повышенным напряжением на аккумуляторе. В режиме «заряд» этот транзистор все время открыт и ни на что не влияет. Открывает его «кабельная перемычка», которая устанавливается на разъем X3-X4. VT7 – интегратор. Можно назвать его И-регулятором. Именно он поддерживает ток  на заданном уровне независимо от напряжения в сети и независимо от напряжения на аккумуляторе. Ток зарядки задает резистор R17. Коллекторное напряжение транзистора VT7 при работе, вообще говоря, неопределенное. Имеет смысл лишь тенденция его к повышению или понижению. Чем выше Uкэ, тем ниже ток зарядки. Нет смысла мерить это напряжение при ремонте. Оно будет либо 0в, либо 7в. VT6 – компаратор. Открывается, когда пилообразное напряжение на базе превысит напряжение на эмиттере (эмиттер подключен к выходу интегратора). VT5 – одновибратор. Формирует короткий импульс отпирания тиристоров. Так точно. Схема оценивает ток зарядки по падению напряжения на вторичных обмотках 7-8 или 8-9. Последовательно встречно с ними включены дополнительные обмотки 5-6 и 3-4. У всех обмоток одинаковое число витков. Пока нагрузки нет, встречные напряжения вторичных обмоток вычитаются полностью и выходное напряжение выпрямителя VD1, VD2 равно нулю. При подключении аккумулятора в цепи появляется ток и на обмотках 7-8 или 8-9 появляется просадка напряжения. Разность встречных напряжений вторичных обмоток перестает быть равной нулю. Поэтому и на выходе выпрямителя VD1, VD2 появляется напряжение, которое пропорционально току зарядки. Это выпрямленное напряжение преобразуется в ток с посредством резистора R1. Ток с резистора R1 является закрывающим для транзистора VT7. Ток с резистора R17 является открывающим для транзистора VT7. Направление изменения напряжения на выходе интегратора (Uкэ транзистора VT7) зависит от знака разности токов резисторов R1 и R17. Схема спроектирована таким образом, что изменение напряжения на выходе интегратора (Uбэ транзистора VT7) прекращается только в том случае, когда средние значения токов резисторов R1 и R17 оказываются равными. Но ток резистора R1 пропорционален току зарядки аккумулятора. Поэтому ток зарядки аккумулятора в конечном итоге стабилизируется.
×
×
  • Create New...