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

Реализация Графического Языка Программирования Для Avr Контроллеров.


Lihouzov

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

9 минут назад, Lihouzov сказал:

Критиковать- не создавать, знаний не надо.

В данной ситуации думаю знания получает только один человек это вы. Так как только вы разбираясь в  работе периферии МК получите какой то опыт!  Но ни как не пользователь вашей программы,  у которого мозгов не прибавится собирая программы из готовых кубиков.

Не в обиду, но я считаю что ваше дитя было рождено уже мертвым!  Так как использование  вашего  продукта на сегодняшний день это  движение назад в прошлое!  Критика  здесь  абсолютно не причем,  архитектура AVR морально устарела.

В 20.06.2018 в 22:41, Lihouzov сказал:

а потом и перенести на 32 битные

Пока вы разберетесь с АVR,  то за ARM вряд ли угонитесь. Все не так просто как обычно нам хочется. Советую не терять драгоценного времени, хотя это ваш крест вам и решать.  Это чисто мое мнение,  удачи.

52 минуты назад, Lihouzov сказал:

Сейчас десяток блоков влазит в килобайт.

Вопрос экономии драгоценных байтов сейчас практический уже не актуален.

Сергей.

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

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

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

Пока вы разберетесь с АVR,  то за ARM вряд ли угонитесь.

Поэтому стоит генерировать код не на ассемблере, а на Си, т.е. максимально абстрагированно от архитектуры и аппаратуры. И, кажется, на "радиокоте" я это автору советовал...

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

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

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

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

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

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

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

14 часа назад, Lihouzov сказал:

Сейчас десяток блоков влазит в килобайт. приемлемая производительность.

У вас в постановке задачи заметна некоторая деградация с 13-года (я специально в начало темы посмотрел),

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

Я не думаю что реализация такой примитивной логики требует визуальной среды разработки!

Потом, задержки прохождения сигналов (фронтов) ваша система позволяет оценить? Мне кажется нет, по крайней мере не вижу как! А это один из наиважнейших аспектов в проектировании-реализации логики, если этого нет - система проектирования не жизнеспособна (мягко говоря).

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

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

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

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

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

Поэтому стоит генерировать код не на ассемблере, а на Си, т.е. максимально абстрагированно от архитектуры и аппаратуры.

А можно воспользоваться наработками gcc или LLVM

2 часа назад, ruhi сказал:

Я не думаю что реализация такой примитивной логики требует визуальной среды разработки!

Никакая логика не требует визуальной среды.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

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

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

 

7 часов назад, COKPOWEHEU сказал:

Никакая логика не требует визуальной среды.

Думаю, что дело не в деградации разработчика, а в деградации "зрителей". С каждой "итерацией" в развитии средств программирования уровень понимания у начинающих все ниже и ниже, и объяснить принцип FBD сразу на примере какой-то реально полезной задачи становится все сложнее и сложнее. А задача визуальной среды именно облегчить использование сложного... Но, увы, сложное оказывается слишком сложным, и приходится его упрощать.

FBD - весьма перспективное направление в проектировании систем управления "домохозяйками", а точнее, инженерами-инсталляторами (т.е. людьми, способными по формальному словесному описанию заказчика нарисовать соответствующую картинку в графическом редакторе, но при этом они могут иметь весьма смутное представление о том, как "устроены" эти квадратики-стрелочки).

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

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

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

С каждой "итерацией" в развитии средств программирования ...

... перспективное направление в проектировании систем управления "домохозяйками"

А я думаю что "развитие средств программирования " в сторону "проектировании систем управления "домохозяйками"" 

есть не развитие, а деградация! И перспектив в этом не вижу!

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

В 28.06.2018 в 20:19, ARV сказал:

FBD - весьма перспективное направление в проектировании систем управления "домохозяйками", а точнее, инженерами-инсталляторами

Для примитивной автоматизации готовых устройств может и пригодно - вроде уже в этой теме обсуждалось. Но только там, где можно проигнорировать дикий расход скорости и памяти как на саму визуальную среду, так и на говнокод (я не верю в хороший код от домохозяек). Программирование МК - немного другая область.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Всем добрый день, комментариев много- отвечу коротко.

 

Программа не поможет в понимании микроконтроллеров, если только не влезать в код и не добавлять блоки.
Программа поможет реализовать алгоритмы автоматизации используя язык FBD (стандартный язык автоматизации).

 

На предприятиях вы не столкнетесь с привычным Си, Pascal или ассемблером, там будет ST, FBD, .. итд, а специалисты со знанием этих языков будут востребованы. 

 

Для примера. Пару лет назад ко мне обратился знакомый радиолюбитель (мог писать код для микроконтроллера) с задачей автоматизации мелкого предприятия. Ему предложили хорошую подработку за автоматизацию, он разобрался в тех. процессе и перед ним встала задача реализации. Он решил сделать на микроконтроллере, но после разговора со мной выбрал промышленный контроллер. Первые несколько дней он ругался и плевался на эти языки, но спустя неделю освоил и с легкостью решил задачу и был доволен результатом.

 

Сделал оптимизацию кода:

 

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

16 часов назад, Lihouzov сказал:

На предприятиях вы не столкнетесь с привычным Си, Pascal или ассемблером, там будет ST, FBD, .. итд, а специалисты со знанием этих языков будут востребованы. 

Не путайте: Си, Паскаль и прочие тоже будут - при создании законченных приборов или программ.

А при автоматизации, создании из законченных приборов автоматизированной системы, настраиваемой не-программистами как раз используются графические "языки". Их преимущество именно в том, что не надо учить синтаксис, достаточно абы как соединить готовые кирпичики изолентой. Так вот, при _создании_ приборов на МК такой подход неэффективен.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Я так думаю, если бы ваш знакомый действительно 

19 часов назад, Lihouzov сказал:

(мог писать код для микроконтроллера)

и на самом деле

19 часов назад, Lihouzov сказал:

Он решил сделать на микроконтроллере

То он бы сделал это без применения промышленного контроллера.  Скорее всего уровень его знаний в области МК был недостаточен. Да и цены на такие контроллеры не особо то привлекательны.

Сергей.

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

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

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

  • 3 недели спустя...

Добрый день, 

можно ли получить доступ к портам ввода-вывода не используя asm команды IN? OUT?

Например я храню в регистре адрес порта, как используя значение регистра получить доступ к порту? 

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

команды ld / st. Адрес в любой из регистровых пар X, Y, Z. Результат записывается в r0-r31.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

  • 1 год спустя...

Всем добрый день,

есть желание продолжить творчество. 

Задумался над режимом отладкиDebug.png.8ca5c29d7aaa0ebcec2d9cd8bb1dc60c.png

Если кому интересно, пишите. Работа будет творческая.

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

Почитал тему, тс конечно молодец что делает такие вещи которыми ему нравится заниматся. Мне это напомнило программу Matlab  где  вначале строишь блок схему автоматизаций с последующими этапами разработки. Единственное matlab стоит просто космос денег это я про офицалку говорю в которой баловался на предприятий, покупали ее за 6 лямов 1 лицензия.

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

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

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

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

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

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

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

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

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

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

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

  • Сообщения

    • Не болтайте чепухой! Ни в компараторе, ни в ОУ НЕТ никакой "внутренней цепи гистерезиса". Гистерезис задается исключительно ОБВЯЗКОЙ. Выход компаратора построен по схеме ОК, т.е., он может только ПРИНИМАТЬ ток, поступающий от шины питания через R5. Следовательно, транзистор открывается током, протекающим через R5, а закрывается закорачиванием его базы выходным транзистором компаратора  на общую шину.  Отсюда следует, что либо постановщик задания - тупарь, не имеющий никакого понятия об особенностях работы компаратора, либо применен не компаратор, а ОУ. В последнем случае был бы нужен R6, а вот R5 был бы совершенно лишним..
    • @Falconist , раз по заданию нужен - обосновать не проблема. И вообще-то про его "нужность" у меня написано. Для особо придирчивых могу обосновать так: R6 применён, чтобы обеспечить на выходе компаратора высокий уровень сигнала, а не ограничивать его напряжением база-эмиттер. Это нужно, чтобы правильно срабатывала имеющаяся внутренняя цепь гистерезиса в компараторе. Ей нужно, чтобы уровень выходного напряжения был достаточный. Иначе будет "звон" при переключении на пологих фронтах. Возражения есть?
    • Коробки должны быть прозрачными, с крышками, и удобно складируемыми. Можно, конечно, круглые, но прямоугольные удобнее.
    • На самом деле - фигня вопрос. R1 - чтобы привязать потенциал входа ОУ к нулю. Определяет требуемое входное сопротивление этого детектора. Берём равным заданному входному сопротивлению, например 10 кОм. R2, R3 - резистивный делитель напряжения, устанавливает порог срабатывания вашего "детектора". Допустим, задан порог срабатывания 1,0 В. Выбираем ток этого делителя. Он должен быть минимум в 50 - 100 раз больше входного тока утечки компаратора, чтобы паразитный ненормированный входной ток не влиял на точность. Допустим, он по справочнику не более 1 мкА. Выбираем ток делителя в 1000 раз больше - 1 мА. Напряжение питания компаратора и этого делителя берём меньше напряжения питания, чтобы работал параметрический стабилизатор на вашем стабилитроне без позиционного обозначения. Выбор примерно 5 В - нормально. И для компаратора напряжение питания в допустимом диапазоне, и на регулировку достаточно остаётся. Итого, стабилитрон на (примерно, с допуском) 5,1 В. На выходе делителя напряжения (на входе компаратора) должно быть 1 В (это порог). Считаем номиналы резисторов: R3 = 1 В / 1 мА = 1 кОм. R2 = (5,1-1)В / 1 мА = 4,1 кОм. Выбираем ближайшие номиналы из ряда заданной точности. Например, из ряда Е96 с 1% точностью это будут номиналы 1,0 кОм и 4,12 кОм. Если нужна точность установки порога лучше, чем может обеспечить стабилитрон, напряжение порога можно подстроить изменяя в небольших пределах сопротивление одного из этих резисторов. Из справочника берём ток потребления компаратора. Например, он 5 мА. Выбираем номинал выходного резистора R7 таким, чтобы обеспечить выдачу 5 В на заданную нагрузку. Допустим, нагрузка 1 кОм. Тогда чтобы на ней напряжение могло быть 5 В, сопротивление R7 должно быть не более 100 Ом (5,1 В / (1+0,1)кОм * 1 кОм = 5,0 В). Ток через R7, когда на выходе 0, будет равен 5,1 В / 0,1 кОм = 51 мА (примерно, напряжение насыщения UБЭ транзистора не учитываем, хотя можно и учесть). Ток через R5 не должен превышать максимально-допустимый выходной ток компаратора (берётся из справочника). Выбираем этот ток вдвое меньше, равным 2 мА. Тогда R5 = (5,1 - UБЭ) / 2 мА = (5,1-0,7)/2 = 2,2 кОм. Итого, от источника будет потребляться ток 5 мА в компаратор, плюс 1 мА в делитель напряжения порога, плюс 51 мА через R7 или 2 мА через R5 плюс ток в стабилитрон. Током в базу транзистора пренебрегаем, хотя можно и учесть. Ток в стабилитрон должен компенсировать изменение тока потребления остальной части схемы, то есть 51 - 2 мА (бывает или один, или второй) = 49 мА. Ток в стабилитрон зададим равным 50 мА, с запасом в 1 мА, чтобы через стабилитрон всегда тёк какой-то ток. Итого, суммарный ток потребления будет постоянным и равным 5 + 1 + 51 + 1 = 58 мА или 5 + 1 + 2 + 50 = 58 мА. Отсюда требуемое сопротивление балластного резистора R4 равно (9 - 5,1)В / 58 мА = 67,2 Ом. Из того же ряда выбираем номинал 66,5 Ом (в сторону уменьшения, "лишний" ток заберёт стабилитрон). Остался резистор R6. В принципе, он в данной схеме действительно не очень нужен (если взять R5 номиналом побольше), но у нас он будет ограничивать ток в базу транзистора, чтобы он не уходил в глубокое насыщение и переключался побыстрее. Ток коллектора транзистора мы знаем - 51 мА. Коэффициент усиления транзистора по току берём из справочника. Берём минимальный, чтобы гарантированно открывался. Например, 100. Ток базы будет 51 мА / 100 = 510 мкА. Чтобы такой ток шёл с +5,1 В, суммарное сопротивление R6 и R5 должно равняться 5,1 В / 510 мкА = 10 кОм. Номинал R6 равен 10 кОм - 2,2 кОм = 7,8 кОм. Из ряда Е96 выбираем ближайший номинал 7,87 кОм. Всё.  
    • Схему ищите в начале темы. Я не занимался изготовлением доктора (только софт), поэтому подсказать Вам в этом вопросе не могу.
    • Я бы, наверное, в этой ситуации подал на УНЧ сигнал с другого источника, с того же смартфона, и посмотрел, что покажет спектра. Может что-то не в порядке в настройках программы? Сама на себя звуковая карта нормальную картинку даёт?
  • Похожий контент

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