"Первые шаги"
"Первые шаги"
beregok, из какого набора шрифтов надо выводить символ?
- kulibinsvv
- Лейтенант
- Сообщения: 480
- Зарегистрирован: 18 сен 2015, 10:04
- Откуда: Омск
"Первые шаги"
Начинаем всё с начала. Ответьте на следующие вопросы:
1. Как называется ваш дисплей? Если не знаете, то хотя бы фото приложите.
2. Если речь идёт о таблице ASCII, то какая кодировка имеется ввиду: CP866, КОИ-8Р, CP1251 и т.д.? Если не знаете, то изучите тему, так как помимо ASCII ещё существует Юникод.
Когда вы ответите на эти вопросы, тогда сможете правильно задать свой вопрос на форуме.
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)
"Первые шаги"
1. банальный 16х2 на контроллере HD44780.kulibinsvv писал(а): ↑15 мар 2021, 05:40 Начинаем всё с начала. Ответьте на следующие вопросы:
1. Как называется ваш дисплей? Если не знаете, то хотя бы фото приложите.
2. Если речь идёт о таблице ASCII, то какая кодировка имеется ввиду: CP866, КОИ-8Р, CP1251 и т.д.? Если не знаете, то изучите тему, так как помимо ASCII ещё существует Юникод
2. кодировка встроеная.
Задача вывести на дисплей шкалу из "кирпичей" псевдографики.
Про различные кодировки я в курсе.
Отправлено спустя 4 минуты 6 секунд:
Если не все стало понятно, то вопрос относится к блоку "Дисплей на чипе HD44780" в программе Flprog
"Первые шаги"
av, воот это я и хотел получить. Все по теме и без воды. Спасибо!
И спасибо за наводку на блок шкалы.![одобрение :smile9:](./images/smilies/smile9.gif)
И спасибо за наводку на блок шкалы.
![одобрение :smile9:](./images/smilies/smile9.gif)
"Первые шаги"
beregok,
Ответ на пост 301
Все делается встроенными блоками. На форуме есть темы где это уже обсуждалось.
например здесь
Ответ на пост 301
Все делается встроенными блоками. На форуме есть темы где это уже обсуждалось.
например здесь
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
"Первые шаги"
уважаемые профи при загрузке lgt8f328p выскакивает вот такая ошибка
прошу сильно не пинать ...
хотя при загрузке других ардуин этой проблемы нет ..понимаю что нужно указать значение но где его взять ума не приложу ..если понадобится покажу весь код прошу сильно не пинать ...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
"Первые шаги"
Всем доброго дня. Вот на днях в авто форуме прозвучал вопрос по этой оболочке. Люди ответили, дали рекомендации, но меня заинтриговало данное направление. Сам то я любитель, иногда пишу для себя мелочовку, но тут прям очень интересно стало когда попробовал в флпрог написать. В данной ситуации возникли вопросы. Вроде простые, но нет понимания на них.
1. При компилировании увидел строку генератора. Это что, настройка внешнего тактирования? Ну, как бы можно и так, но уж сильно много команд...
2. При попытке составления блоков не получилось сделать программу в програмие. Получается что такие блоки придется писать в ручную? Ну к примеру, блок сравнения, задано 10 и поступило 11,блок сравнения изменил свое состояние и через переменную мы подали команду на блок исполнения, блок исполнения изменил свое состояние и мы выполнили операцию. Но судя по заданию блок сравнения стоит в начале, блок исполнения в конце. Это получается все что между ними не исполнилось, а исполнется в седующем цикле или программа возвращается к этой строке и продолжает тактовую работу по строкам? Если бы я писал в ручную то исполнительный блок я бы прописал как программа в программе и тогда сравнение изменив свое состояние остановила бы такт перейдя в подпрограмму, управление сработало бы и программа вернулась к строке где прервалась и продолжила бы свою работу.
Я посмотрел не все видео, но основные тезисы усвоил. В принципе нет ни чего сложного, больше похоже на сборку логики, в общей концепции. Создание блоков тоже не вызывает особых сложностей. Если работать в этой среде, в режиме "сваять по быстрому и посмотреть результат" то даже иногда не хочется самому писать, хочется оставить как есть.
Есть еще вопросы, но буду их смотреть по порядку, дабы не разводить бардак в голове... Спасибо!
1. При компилировании увидел строку генератора. Это что, настройка внешнего тактирования? Ну, как бы можно и так, но уж сильно много команд...
2. При попытке составления блоков не получилось сделать программу в програмие. Получается что такие блоки придется писать в ручную? Ну к примеру, блок сравнения, задано 10 и поступило 11,блок сравнения изменил свое состояние и через переменную мы подали команду на блок исполнения, блок исполнения изменил свое состояние и мы выполнили операцию. Но судя по заданию блок сравнения стоит в начале, блок исполнения в конце. Это получается все что между ними не исполнилось, а исполнется в седующем цикле или программа возвращается к этой строке и продолжает тактовую работу по строкам? Если бы я писал в ручную то исполнительный блок я бы прописал как программа в программе и тогда сравнение изменив свое состояние остановила бы такт перейдя в подпрограмму, управление сработало бы и программа вернулась к строке где прервалась и продолжила бы свою работу.
Я посмотрел не все видео, но основные тезисы усвоил. В принципе нет ни чего сложного, больше похоже на сборку логики, в общей концепции. Создание блоков тоже не вызывает особых сложностей. Если работать в этой среде, в режиме "сваять по быстрому и посмотреть результат" то даже иногда не хочется самому писать, хочется оставить как есть.
![думаю :smile469:](./images/smilies/smile469.gif)
"Первые шаги"
Evgenich, всегда прикладывайте файл проекта, иначе Вам если и ответят - то на турецкую пасху..
"Первые шаги"
Ну там как бы много чего появляется, вопрос конкретизируйте, о какой строке речь, о каком генераторе.
В настройках каждой платы есть такие инструменты как "Выполнение по условию", "Выполнять в цикле пока".
Грамотно их используя можно много чего наворотить.
В FLProg весь код можно удобно раскидать на логические блоки (платы) и управлять их работой включая/выключая по необходимости.
- Dryundel
- Полковник
- Сообщения: 2392
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Контактная информация:
"Первые шаги"
Это возможно.
Когда Вы пишете о подпрограмме, вероятно имеете в виду функцию, которая либо выполняется по какому то условию, либо нет.
Naladchik, рассказал Вам о возможности работы с платами. Это тоже имеет место быть. Плата может выполняться по условию и даже в цикле обусловленном в этой же плате. Однако Вас интересовал немного другой вопрос. На сколько я понял состоит он в том, что бы после выполнения подпрограммы (функции), контроллер должен вернуться в точку с которой ушел в данную функцию, а не продолжил цикл, как это произойдет при работе с платой. Так?
Вот именно для этого есть такая штука как создание пользовательского блока на FBD. Такой блок является именно функцией (подпрограммой). Создается он с помощью тех же штатных блоков. Т.е. в блоке на FBD вы создаете какой то алгоритм и потом используете этот блок в тех местах проекта где это требуется. В скетче же это выглядит как обычная функция(подпрограмма), а отсылки на нее происходят из тех мест где данный блок-FBD вставлен в проект.
Надеюсь доходчиво объяснил.
Вот за это спасибо, ибо из-за сваливания вопросов в кучу, возникает не только в голове но и на форуме.
![Улыбка! :)](./images/smilies/ha_smile.gif)
"Первые шаги"
Naladchik, хорошо. По первому вопросу вечером решим, скрин не добавляется.
Посмотрел я платы и условия для них. Ну, не в восторге, честно признаться... Даже незнаю, будет ли это толком работать? Ну одна, ну три, еще может быть. Но допустим с пару десятков условий, ардуинка зависнет же наглухо! Хорошо. Если программа выполнила по условию. К примеру: плата1 и плата5 содержат условия больше или равно, условие совпала на плате1, программа перешла к плате5 по условию, плата5 отработала условие. Далее как будет? Программа перейдет к плате2 или перейдет к плате6?
Отправлено спустя 4 минуты 32 секунды:
Dryundel, вот спасибо! Доходчиво объяснили! Получается что нет. Значит надо самому блок с подпрограммой писать... Жестко и печально. С платами и условиями в принципе, поверхностно понятно... Но как по мне легче блок тогда наверное написать...
Посмотрел я платы и условия для них. Ну, не в восторге, честно признаться... Даже незнаю, будет ли это толком работать? Ну одна, ну три, еще может быть. Но допустим с пару десятков условий, ардуинка зависнет же наглухо! Хорошо. Если программа выполнила по условию. К примеру: плата1 и плата5 содержат условия больше или равно, условие совпала на плате1, программа перешла к плате5 по условию, плата5 отработала условие. Далее как будет? Программа перейдет к плате2 или перейдет к плате6?
Отправлено спустя 4 минуты 32 секунды:
Dryundel, вот спасибо! Доходчиво объяснили! Получается что нет. Значит надо самому блок с подпрограммой писать... Жестко и печально. С платами и условиями в принципе, поверхностно понятно... Но как по мне легче блок тогда наверное написать...
- Dryundel
- Полковник
- Сообщения: 2392
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Контактная информация:
"Первые шаги"
Вижу что доходчиво. Но нефига не понятно.
![прикольно :smile171:](./images/smilies/smile171.gif)
В догонку еще раз. Блок на FBD это тот же проект (подпроект) в программе FLProg. Делается он точно так же как и основной проект, из тех же самых штатных блоков FLProg. Ничего писать на C++ не требуется.
Может если попробуете, станет понятней?
Еще доходчивей у меня не получается. Извините.
Отправлено спустя 8 минут 32 секунды:
И еще. Изначально функцией является только блок созданный на FBD. Блоки написанные в Code и Code Pro могут быть функцией только если вы специально их сделаете таковыми. Просто код вставленный в блок Code и Code Pro будет куском кода вставляемым в скетч в каждом месте проекта, где находится этот блок.
"Первые шаги"
Dryundel,
Сравнительно понял. Я пробовал для СКАДА накидать простейшую программку, для пробы, получилось частично. Сейчас просмотрел видео и чуть почитал по платам и условию для них, возможно я не дооценил эти возможности... Вечером опробую.
Но честно сказать, да, плохо укладывается в голове такое построение. Как бы привык к более плотной и более логичной структуре. По этому вопросу пока все, надо опробовать.
Еще вопрос, но я сначало в поиске попробую.
Сравнительно понял. Я пробовал для СКАДА накидать простейшую программку, для пробы, получилось частично. Сейчас просмотрел видео и чуть почитал по платам и условию для них, возможно я не дооценил эти возможности... Вечером опробую.
Но честно сказать, да, плохо укладывается в голове такое построение. Как бы привык к более плотной и более логичной структуре. По этому вопросу пока все, надо опробовать.
Еще вопрос, но я сначало в поиске попробую.
-
- Рядовой
- Сообщения: 72
- Зарегистрирован: 06 апр 2020, 10:53
- Имя: Павел
"Первые шаги"
Del
"Первые шаги"
Всем добра. Начинающий. Заинтересовался программированием Arduino. Начал изучать FLProg с просмотра видео и изучением каждого блока. Полученный код вставляю в симулятор Wokwi, который ругается на первую строку. Тупо убрал её, светодиод от кнопки заработал. Это фрагмент кода с первой строкой.
#include "flprogUtilites.h"
bool _bounseInputD2S = 0;
bool _bounseInputD2O = 0;
unsigned long _bounseInputD2P = 0UL;
void setup()
********************************
И так дошёл до таймеров и генератора.
Например, с таймером на отключение через 3 секунды симулятор выдаёт такую вот ошибку.
error: 'flprog' has not been declared
if (flprog::isTimer(_tim1P, 3000))
С генератором аналогичная ошибка.
Что не так делаю?
Скоро получу набор с платой. Буду конкретно с железом работать.
Спасибо.
#include "flprogUtilites.h"
bool _bounseInputD2S = 0;
bool _bounseInputD2O = 0;
unsigned long _bounseInputD2P = 0UL;
void setup()
********************************
И так дошёл до таймеров и генератора.
Например, с таймером на отключение через 3 секунды симулятор выдаёт такую вот ошибку.
error: 'flprog' has not been declared
if (flprog::isTimer(_tim1P, 3000))
С генератором аналогичная ошибка.
Что не так делаю?
Скоро получу набор с платой. Буду конкретно с железом работать.
Спасибо.
"Первые шаги"
Здравствуйте! Подскажите пожалуйста как в Flprog целое число int к примеру 25 (полученное от датчика температуры), разбить на 2 и 5. Нужно вывести на две матрицы 8х8 на Max7219 данные с датчика температуры DS18B20 ( первая матрица показывает 2, а вторая 5). В блоке Max7219 создал массив с цифрами от 0 до 9. Спасибо.
Последний раз редактировалось Nikolai 29 ноя 2023, 10:49, всего редактировалось 1 раз.
-
- Сержант
- Сообщения: 281
- Зарегистрирован: 10 сен 2020, 14:37
- Имя: Иван
"Первые шаги"
SergeySV, тебе нужно добавить библиотеки flprogUtilites в Wokwi
https://docs.wokwi.com/guides/libraries
https://docs.wokwi.com/guides/libraries
"Первые шаги"
Спасибо! А как с помощью блоков Flprog разбить число.ivansidor012 писал(а): ↑28 ноя 2023, 22:07 SergeySV, тебе нужно добавить библиотеки flprogUtilites в Wokwi
https://docs.wokwi.com/guides/libraries
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость