Программа Flowcode пятой версии

May 21, 2014 by admin Комментировать »

Многие, кого интересует создание простейших роботов, но кто не готов купить конструктор для экспериментов кто только начинает осваивать микроконтроллеры и планирует собрать робот из старого, управляемого с пульта автомобиля могут на первых порах воспользоваться свободной версией программы Flowcode

Хотя первые шаги лучше сделать с самыми простыми программами, даже начинающие быстро переходят к задачам достаточно сложным Поэтому кроме овладения приёмами создания программ в Flowcode я настоятельно рекомендую познакомиться и с языком программирования Си и с ассемблером Программа Flowcode позволяет делать вставки на языке Си, это та причина, по которой зашла речь об этом языке, хотя можно вполне успешно писать программы для микроконтроллеров на языке, скажем, Basic Знакомство с ассемблером, равно как и конкретной моделью микроконтроллера по его описанию, избавит вас от ощущения, что есть нечто за пределами ваших знаний, в чём и скрыт успех работы Успех любой работы в постоянной практике и постоянном пополнении знаний

Пятая демо-версия программы имеет, конечно, ряд ограничений, но для знакомства с микроконтроллерами её более чем достаточно

Рассмотрим некоторые новшества этой версии на примере простого решения: общение двух микроконтроллеров Предпосылка для этого устройства в отсутствии многозадачности в МК Что это значит

Как правило, микроконтроллер работает в бесконечном цикле, выполняя некоторую задачу Выберем простейшую задачу, которая похожа на регулировку скорости вращения двигателя постоянного тока, но упростим её: будем включать и  выключать светодиод с заданным интервалом времени Теперь предположим, что есть датчик расстояния до препятствия Когда датчик обнаруживает препятствие, мы должны замедлить движение

Работа с датчиком расстояния – это вторая задача Можно, конечно, включить одну из задач во вторую, но мы выберем другое решение: пусть одну задачу, движение, выполняет микроконтроллер PIC16F887 (как в ROBOPICA), а другую задачу, следить за преградой, выполняет второй микроконтроллер PIC16F628A Оба контроллера мы свяжем по USART, и, когда второй контроллер обнаружит препятствие, он отправит сигнал первому контроллеру, который изменит

«скважность» мигания светодиода Вот такую простую задачу мы постараемся решить и отладить в программе Flowcode

Вначале напишем программу для  второго контроллера: когда нажата кнопка, контроллер отправляет символ «1»

Запускаем программу, выбрав контроллер PIC16F628A:

Рис Б1 Рабочее окно программы Flowcode 5

В отличие от предыдущей версии в новой программе есть окно навигации по проекту, что особенно удобно, когда проект (незаметно, но быстро) начинает разрастаться Пользуясь окном доступа в Интернет, вы можете обратиться к справкам, форуму по программе непосредственно из программы Если это окно вам не нужно, вы можете его отключить

Как и в предыдущей версии, инструментальная панель отладочных компонентов и встроенных модулей микроконтроллера имеет группы этих элементов, раскрыв которые вы  можете убедиться, что новая версия пополнилась новыми элементами Но начнём работу

Добавим кнопку и модуль RS232 для реализации программы Кнопка найдётся в группе «Входы»:

Рис Б2 Добавление кнопки

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

вход МК высокий уровень или низкий (я выбираю низкий) В свойстве соединения вы выбираете, к какому выводу будет подключена кнопка Впрочем, всё это есть и в предыдущих версиях

В предыдущих версиях я сталкивался с тем, что нужна вставка на языке Си для использования внутренних «подтягивающих» резисторов на входах Проверим, так ли это в пятой версии Подойдёт простой вариант – кнопка нажата, загорается светодиод, попутно я использую новый трёхцветный светодиод, появившийся в этой версии

Рис Б3 Программа проверки работы кнопки

Вы и сами заметили, что теперь программа нуждается в меньшем количестве комментариев, она снабжается ими автоматически К сожалению, трёхцветный светодиод в демо-версии не работает, приходится программу вернуть к обычному виду И я удаляю макрос опроса кнопки, возвращая обычный элемент входа В расширенных свойствах светодиода указываю активный низкий уровень (подразумевая, что катод подключён к земле)

Используя макросы для кнопки и светодиода, я не вполне ясно понимаю их работу Разобраться с этим можно позже, а сейчас меня интересует в большей мере вопрос «подтягивающих» резисторов

Запустив отладку, я вижу, как при нажатой кнопке светодиод загорается, а при отпущенной гаснет

Рис Б4 Симуляция работы программы в Flowcode

Но проверка в программе ISIS не даёт ожидаемого результата:

Рис Б5 Проверка программы в Proteus

Выход RA0 остаётся в высоком состоянии вне зависимости от состояния кнопки Добавляю вставку на языке Си в программу (нужно сбросить седьмой бит в регистре OPTION) Чтобы использовать режим пошаговой отладки, меняю кнопку без фиксации на стопорящую (в её свойствах) Попутно отмечу, что в этой версии в окно наблюдения за переменными можно добавить и порты Действия, как и в предыдущих версиях, просты – щелчок правой клавишей мышки в окне наблюдения при начале отладки, выбор переменной или порта, при этом переменные могут быть и глобальными, и локальными:

Рис Б6 Добавление портов для наблюдения в режиме пошаговой отладки

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

Рис Б7 Проверка работы программы в ISIS

Теперь ненадолго вернёмся к первоначальному виду программы Я хочу использовать макросы для чтения состояния кнопки вывода результата на светодиод При чтении состояния кнопки используется переменная Добавив макрос чтения, выбираем переменную (в данном случае создаём новую):

Рис Б8 Создание новой переменной Выглядит программа так:

Рис Б9 Вид программы с использованием макросов

Но при отладке в Flowcode программа работает несколько странно, что я отнёс бы к разряду глюков Зато в ISIS это работает правильно:

Рис Б10 Работа программы в Proteus

Пора приступить к основной программе для этого контроллера Создаём новый проект, заходим в раздел основного меню Чип->Настройки проекта Теперь и выбор частоты тактового генератора, и задание слова конфигурации происходит в одном месте

Рис Б11 Настройка проекта

Я настраиваю конфигурацию так, чтобы слово конфигурации было 3F18 Однако добавление модуля RS232 проясняет, что этот модуль не входит в состав ограничений демо-версии Жаль, поскольку не будет работать и сетевое соединение двух микроконтроллеров

Не всегда получается то, что хочется Так Вместе с тем, программа стала удобнее и для первого знакомства с микроконтроллером вполне подходит

Хочется ещё добавить, что в новой версии расширено количество типов данных Щёлкнем в навигаторе проекта по разделу Переменные правой клавишей мышки и выберем добавление новой переменной:

Рис Б12 Новые типы переменных в Flowcode 5

Удобнее стало работать с текстом на языке Си после трансляции программы Возможно, в полной версии можно разделить окно программы, чтобы этот текст был постоянно в поле зрения

Рис Б13 Текст программы на языке Си

Текст, введённый с помощью программных компонентов, дополнен иконками этих элементов, что позволяет легче сопоставить действия, вызванные работой графических компонентов и исходного текста на языке Си

Когда в свойствах прерывания задаётся срез импульса, вызывающий это  прерывание, то  при симуляции вывод отображает, каким срезом, фронтом или спадом, вызывается прерывание

Рис Б14 Настройка прерывания

Не самое главное, но полезное нововведение

Рис Б15 Поведение вывода прерывания при отладке

Появилась возможность отключать при отладке блоки программы Например, чтобы при отладке в пошаговом режиме не ждать завершения долгой паузы, можно отключить блок Для этого достаточно щёлкнуть по блоку правой клавишей мышки

Рис Б16 Выпадающее меню работы с программным блоком Отключённый блок меняет свой вид:

Рис Б17 Отключение блока программы

Удобнее, полнее – новая версия программы, думаю, не ограничивается этими свойствами, раскрывая новые в процессе работы Осталось поработать с программой…

Источник: Гололобов ВН,- Самоучитель игры на паяльнике (Об электронике для школьников и не только), – Москва 2012

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты