» » Знакомьтесь: Flowcode. Программирование для AVR и PIC без программирования

 
 
 
17

Знакомьтесь: Flowcode. Программирование для AVR и PIC без программирования

Разместил Cherep 2 октября 2012. Просмотров: 55 316

Здравствуйте, друзья!
В данной статье я хочу рассказать о своих впечатлениях при работе с программой Flowcode. Это среда разработки, позволяющая составлять программу в виде обычной блок-схемы. Соответственно, мы можем иметь лишь поверхностные навыки в программировании, которые сводятся к составлению нужного алгоритма и, соответственно, блок-схемы. Flowcode генерирует С код, а также компилирует его в .hex файл, который можно сразу же прошить в контроллер или, к примеру, смоделировать в Proteus'е.
Существует две версии программы: для AVR и для PIC. Они имеют в целом одинаковый интерфейс, за некоторым исключением. Изначально все это разрабатывалось для PIC, а уже потом портировалось под AVR.
Ознакомимся поверхностно с программой и ее использованием. Следует признать, что русификация очень кривая забавная.
Основное окно программы:
Здесь мы видим небольшую часть уже собранной программы и практически все элементы управления.
Вверху стандартное меню, а вот ниже все намного интереснее. В меню "Объекты", "Обычные" и т.д. находятся готовые модули, которые можно применять в программе. Например, через "Объекты" можно нарисовать линию, фигуру, написать текст. Через "Коммуникации" - присоединить интерфейсы (SPI, I2C, CAN и др.)
Слева находится панель с элементами блок-схемы - циклы, ветвления, и прочее безобразие. Именно с помощью нее будет создаваться будущая программа. Основное поле Flowcode имеет вкладки. Изначально, при создании нового проекта, вкладка всего одна и называется "Главная"("Main"). Это тело основной программы. Если мы пожелаем создать подпрограмму (здесь они называются макросами, но при русификации в некоторых местах забыли приписать буковку С и получилось "Макро" smile ), то каждый макрос будет в своей вкладке.

Ниже находится еще одно большое поле, называемое "Панель". Здесь размещаются элементы, которые мы применяем при создании программы (например, это может быть ручка эмуляции АЦП, 7-сегментный или ЖК-дисплей)

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

Ну, в принципе все! smile Сказать можно многое, но интереснее попробовать.

Небольшой урок по созданию простейшей программы

А создавать мы будем.. хм... двоичный счетчик, инкрементируемый по нажатию кнопки. При достижении 8 счетчик обнуляется.
Создаем новый проект и выбираем микроконтроллер Atmega8. Можно в принципе любой другой, но я использовал именно его, поэтому порты и выводы будут описаны применительно к этому контроллеру.

Теперь создадим элементы которые нам нужны для работы: это кнопка и 4 светодиода.
Для создания кнопки щелкаем Входы, выбираем SWITCH.

В нижней панели появится тумблер, что не страшно. Если щелкнуть правой кнопкой по тумблеру, то можно попасть в контекстное меню и выбрать Расширенные свойства и там настроить как нужно.
Например так:

Также, в контекстном меню кнопки выбираем Соединения и приделываем кнопку к порту С и выводу 0.
Похоже на это, только вместо АЦП будет кнопка.:

Аналогично подключаем каждый светодиод, но уже к портам B0, B1, B2, B3. Светодиод ищем в пункте Выходы.
Окончательный результат выглядит аналогично этой картинке:
Знакомьтесь: Flowcode. Программирование для AVR и PIC без программирования

Также необходимо создать всего две переменные: count и button. Обе типа BYTE.
Первая - это сам счетчик, она будет меняться от 0 до 8 в процессе счета. Вторая - может быть 0 или 1, она показывает, нажата ли кнопка.
Создаются следующим образом:
Правка - Переменные, в открывшемся окне создаем новую переменную.
Далее собираем следующую блок-схему:
В картинке я дописал комментарии, что для чего нужно. Все очень-очень просто smile

Все используемые элементы берутся из левой панели программы (это где много желтеньких значков) smile
После сборки запускаем. Светодиоды по нажатию кнопки должны выдавать двоичное 4-битное число.
Уфф... Вроде ничего не забыл...

Файлы

Прикрепляю архив с программой, сделанной через эту среду + файл протеуса, кому интересно посмотреть.
voltamp.rar | Файл 37,87 Kb загружен 255 раз.

Вывод

Думаю, программа заслуживает внимания.
Особенно интересна она для тех, кто как и я не знает С или Ассемблер на хорошем уровне.
Спасибо всем, кто не устал читать мою писанину, удачи! :hi:
Сергей (Cherep)
Россия, Рыбинск
Профиль Cherep
Интересуюсь железной дорогой. С паяльником дружу как любитель. Занимаюсь усилителями, преимущественно переделкой и восстановлением отечественных аппаратов. Строю комбик.
 

Понравилось? Палец вверх!

  • всего лайков: 69

Поделись с друзьями!

Связанные материалы:


Схема на Датагоре. Новая статья Программирование микроконтроллеров в AtmelStudio 6. Часть 2. Одна программа на разных языках.... Для радиолюбителей, которые до определенного времени не использовали микроконтроллеры в своих...
Схема на Датагоре. Новая статья Дистанционный контроллер состояния подъездного освещения с web-интерефейсом: Лампочкометр-WEB... …а вот не видать из Челябинска моего Лампочкометра, я вам скажу больше – его уже и из-за угла не...
Схема на Датагоре. Новая статья Программа для лабораторного блока питания с микропроцессорным управлением на ATMega16... Обещанный релиз первого варианта "правильной" программы к статье Сделай сам лабораторный блок...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 6... Продолжим разбор теоретических основ, без которых невозможно полноценное создание программ....
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 3... Мы научились включать и выключать светодиоды, а как сделать, чтобы они сами заморгали? Понятно, что...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 1... Каждый человек, который только начинает осваивать программирование микроконтроллеров, да и вообще...
Схема на Датагоре. Новая статья Макросы Sprint-Layout 5. Датагорская коллекция 06/2011... Это моя новая подборок макросов к программе Sprint-Layout 5.0. Спасибо всем, кто выкладывал свои...
Схема на Датагоре. Новая статья Программа "Справочник по SMD" v.3.1... Элементы SMD широко используются в современной электронике, да и в радиолюбительских конструкциях...
Схема на Датагоре. Новая статья Elect_60: программа микроконтроллерного управления внешними устройствами от ПК... Многие наши коллеги желающие создать микроконтроллерное устройство, управляемое от ПК сталкиваются...
Схема на Датагоре. Новая статья Анатомия микроконтроллеров ATmega... Здравствуйте, датагорцы! После публикации моей первой статьи, меня завалили вопросами о...
Схема на Датагоре. Новая статья Программирование микроконтроллеров ATmega... Хеллоу ВСЕМ!!! Итак, как я и обещал, расскажу как залить программу в МК. Для этого нам понадобится...
Схема на Датагоре. Новая статья Как определить параметры динамика? Мерим Тиля - Смолла... Хочется собрать сабвуфер, да не простой, а грамотно рассчитанный. В этих расчетах уже все...
<
  • Гражданин
2 октября 2012 13:44

Андрей / andrew_spb

Цитата
  • С нами с 21.02.2009
  • Ушёл в реал Пользователь offline
  • 130 комментариев
  • 2 публикации
 
  • 0
Спасибо! Очень полезная статья! Не помешали бы ссылочки на прогу(ладно, уже сам нашел) , и что-то не качает ваш архив - выкидывает на первую страницу - ну думаю это с движком сайта что-то

<
  • Главный редактор
2 октября 2012 14:08

Игорь Петрович Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 680 комментариев
  • 264 публикации
 
  • 0
Андрей, всё волшебно со ссылками, проблем не отмечено. На момент написания этого коммента 10 скачиваний.

Ссылку на прогу давать не будем - берите на любом популярном треккере.

<
  • Гражданин
3 октября 2012 03:11

Владимир / kotyk7

Цитата
  • С нами с 8.11.2009
  • Ушёл в реал Пользователь offline
  • 30 комментариев
  • 5 публикаций
 
  • 0
Mr. Cherep, благодарю за популяризацию этого продукта!
Я его знаю, часто пользуюсь, он мне тоже нравится, хотя идеалом не называю. Есть в нем некоторые минусы, например обьем генерируемого кода. Но для начинающих программить "просто улет".
Если в чем иногда сомневаюсь, беру его, нарисую блочками кусочек кода, "прогоню" и потом переношу все в привычный мне компилятор с обычной лексикой СИ.

К сожалению у меня не получилось скомпилировать код, который вы выложили. Я проверял. Начинающий просто ударится в "столб" и последствия легко прогнозируемые.
Может быть вы исправите ошибку (если она есть) или дадите нам пример попроще?

<
  • Гражданин
3 октября 2012 19:07

Сергей / Cherep

Цитата
  • С нами с 22.03.2009
  • Ушёл в реал Пользователь offline
  • 27 комментариев
  • 2 публикации
 
  • 0
kotyk7, спасибо за отзыв. Насчет объема кода с Вами полностью согласен, но ведь это присуще большинству продуктов, которые позволяют работать аналогичным способом. Те же конструкторы сайтов. Тоже получается монстр smile
Удивительно, что не получилось скомпилировать. Сейчас набросал по-новой, сразу запустилось... shok

<
  • Гражданин
4 октября 2012 03:52

Владимир / kotyk7

Цитата
  • С нами с 8.11.2009
  • Ушёл в реал Пользователь offline
  • 30 комментариев
  • 5 публикаций
 
  • 0
Немного не по теме, но все же. Чисто проффесиональный вопрос. Почему в цепь формирования разрядов поставили две 74HC595 (чисто по производственным мотивам, чтобы одиннаковые корпуса.), а не скажем 155ИД3 без 74HC595 вообще? Бистродействие побольще, корпусов меньше, буферный каскад все равно нужен. Портов хватает. Или это чисто научный проект с изучения шины даных SPI?

<
  • Гражданин
4 октября 2012 18:07

Сергей / Cherep

Цитата
  • С нами с 22.03.2009
  • Ушёл в реал Пользователь offline
  • 27 комментариев
  • 2 публикации
 
  • 0
kotyk7, именно так, это сырая версия ампер-вольтметра, собранная из первых попавшихся подходящих компонентов. Создавалась лишь для проверки работы прошивки. В планах ее техническая реализация, там, разумеется, будет уже другая база...

<
  • Гражданин
5 октября 2012 00:58

Владимир / kotyk7

Цитата
  • С нами с 8.11.2009
  • Ушёл в реал Пользователь offline
  • 30 комментариев
  • 5 публикаций
 
  • 0
Mr. Cherep, я кажется понял почему втянулся в переписку с Вами, увидев проект. А все потому, что я ранее делал себе цифровой блок питания на МК и решал проблему шлейфа к индикаторам. И пошел другим путем. Хотя мысль сотворить что-то более менее универсальное где-то в подсознании осталась. Да три 74HC595 в этом плане действительно хорошо смотрится, тоесть в плане количества цепей шлейфа. Но столько корпусов на индикаторе (не забываем и о буферных каскадах)... начинаю вспоминать об советских регистрах...

<
  • Гражданин
5 октября 2012 01:25

Сергей / Cherep

Цитата
  • С нами с 22.03.2009
  • Ушёл в реал Пользователь offline
  • 27 комментариев
  • 2 публикации
 
  • 0
Сегодня для интересу прикинул схему на ИР23. Громоздко получилось... на мой взгляд SPI и сдвиговые регистры вкуснее smile Но я далеко не специалист, поэтому возможно упускаю некоторые важные вещи.
ПС. Сейчас придет Игорь и будет ругаться smile Может в форум?

<
  • Гражданин
6 октября 2012 00:10

Игорь Рогов / AudioKiller

Цитата
  • С нами с 10.01.2012
  • Ушёл в реал Пользователь offline
  • 293 комментария
  • 3 публикации
 
  • 0
Пример с кнопкой, переключающей светодиоды. Вопрос такой. Правильный способ программирования:
1. получение прерывания от кнопки
2. Устранение дребезга
3. Переключение светодиодов (причем лучше по отрусканию кнопки)

А как делает эта система? Догадается ли она использовать прерывания и таймер для устранения дребезга контактов?

<
  • Гражданин
6 октября 2012 03:07

Владимир / kotyk7

Цитата
  • С нами с 8.11.2009
  • Ушёл в реал Пользователь offline
  • 30 комментариев
  • 5 публикаций
 
  • 0
Mr. AudioKiller, Flowcode взаправду все это описывает в одной команде. Он похож на славный добрый Бейсик, в котором написал команду, а он по концовке вставил кучу асмовских "заморочек". Можете не сомневаться. Он так же четко рассчитает все временные задержки.Поскольку в нем заложены близкие к идеальным модели формирования команд управления микроконтроллером. Безусловно в нем есть парочка "заморочек"-ошибок программистов -создателей. Да где их нет? Это же свойство дает ему возможность очень легко переносить созданный проект с одного МК на другой, и даже на базу от конкурентов. В общем, по всей видимости, он для этого и создан. Я свой проект блока питания на PIC16F677 за 1 час перенес на AVR ATMega16, а за два вечера после работы на PIC16F918 с управлением всех систем по шине SPI. Ни на каком другом компиляторе за такое время Вы подобную задачу по всей видимости не осилите. Но за это тоже есть плата. Избыточность кода. Если использовать мощные современные МК то это не заметно, а если "старые" модели с 1-2 К байт памяти то готовтесь к проблемам при сложных задачах. Да, вдогонку, изучать на нем программирование одно удовольствие (потом немного сложно к Си привыкать).
Mr. Cherep, о ИР23 я вспомнил как пример, который у меня положительных эмоций не вызывает. Эсли пожелаете "помучаться" над созданием универсального многоразрядного индикатора для нужд Города и не только, я готов присоединиться, а то я помалу завершаю статью в журнал и скоро появиться чуток свободного время.

<
  • Гражданин
6 октября 2012 13:40

Сергей / Cherep

Цитата
  • С нами с 22.03.2009
  • Ушёл в реал Пользователь offline
  • 27 комментариев
  • 2 публикации
 
  • 0
AudioKiller, соглашусь с kotyk7. Помимо всего этого, можно использовать и другие прерывания, они доступны в программе. К сожалению, сказать чего-то большего не могу, т.к. с прерываниями работать еще не умею sad
kotyk7, насчет универсального индикатора - интересно!

<
  • Гражданин
6 октября 2012 22:11

Игорь Рогов / AudioKiller

Цитата
  • С нами с 10.01.2012
  • Ушёл в реал Пользователь offline
  • 293 комментария
  • 3 публикации
 
  • 0
Я немного не то имел ввиду. Я имел ввиду - система пытается все делать "совсем тупо в лоб", или все же пытается правльно использовать прерывания и таймер (пусть и не очень эффективно)? Потому как даже в мощных МК таймеров мало, и если требуется использовать несколько независимых временнЫх интервалов, то не получится ли так, что она либо все попятается посадить на один таймер, или для коротких выдержек использует 16-ти разрядный таймер, и длинную выдержку уже не получишь?

<
  • Гражданин
8 октября 2012 03:34

Владимир / kotyk7

Цитата
  • С нами с 8.11.2009
  • Ушёл в реал Пользователь offline
  • 30 комментариев
  • 5 публикаций
 
  • 0
Mr. AudioKiller, с прерываниями там все в ручном режиме, какой хочеш такой и выбираеш. Приятно то,что сразу есть калькулятор. Меняеш коэффициент деления - видишь частоту прерывания. Но пока не на все МК есть все ее виды. То есть сложные, редко используемые, есть не все.

<
  • Гражданин
25 октября 2012 15:29

Радик / galrad

Цитата
  • С нами с 23.08.2011
  • Ушёл в реал Пользователь offline
  • 88 комментариев
  • 12 публикаций
 
  • 0
Цитата: kotyk7
Я свой проект блока питания на PIC16F677 за 1 час перенес на AVR ATMega16, а за два вечера после работы на PIC16F918 с управлением всех систем по шине SPI. Ни на каком другом компиляторе за такое время Вы подобную задачу по всей видимости не осилите.

Полностью с вами не соглашусь, хотя бы потому, что мне приходилось переносить проекты с PIC на AVR и наоборот, например регулятор температуры с индикатором от nokia 3310. На Си делал это буквально за 30-40 минут, хотя Си на стадии изучения... Но, в любом случае для начинающих программистов, программа может оказаться просто незаменимой, поэтому ждем продолжений...
Кстати, пользуюсь аналогичной программой HiAsm Studio для создания приложений в win-дах, принципы те-же самые...

<
  • Гражданин
8 января 2013 04:18

Владимир / kotyk7

Цитата
  • С нами с 8.11.2009
  • Ушёл в реал Пользователь offline
  • 30 комментариев
  • 5 публикаций
 
  • 0
Mr.galrad, как по мне Вы привели не совсем удачный пример. Програмная часть регулятора температуры даже с индикацией не сравнится по обьему кода с полностью автономным блоком питания с управленим на МК. Особенно если там еще и шина SPI по линии индикации и управления аналоговой частью...

<
  • Прохожий
16 июля 2017 19:49

/ Lavad

Цитата
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
От Си держусь как можно дальше, писал на Бейсике, постепенно перехожу на Асм. Только сегодня прочел статью, выполнил урок (двоичный счетчик), покрутился по опциям и меню..., но так и не понял связь Ассемблера с данной программой. Имею в виду фразу из статьи:
"...Особенно интересна она для тех, кто как и я не знает С или Ассемблер на хорошем уровне."
Тем более, если Flowcode компилирует или в Си, или в HEX.

<
  • Главный редактор
17 июля 2017 05:47

Игорь Петрович Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 680 комментариев
  • 264 публикации
 
  • 0
Цитата: Lavad
так и не понял связь Ассемблера с данной программой. Имею в виду фразу из статьи:
"...Особенно интересна она для тех, кто как и я не знает С или Ассемблер на хорошем уровне."

Связь очевидна: овощное пюре особено интересно для тех, кто не может грызть сухарики и сушки из-за отсутствия зубов.
Flowcode - это инструмент для быстрого получения хоть какого-то результата от престарелой кухарки или ребёнка уже после трёх дней обучения. yahoo

Добавление комментария


Налетай! Паяльники, станции, жала с доставкой
  • smilelolbyewinkyahoocoollaughing
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashguitar-manhandshake
    musicnegativenopardonshoksleepunknown
    wackoyawnblushbullyhashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.