Несколько диапазонов генератора – для новичков в радиоделе

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

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

Оценим, каковы пределы изменения частоты, если мы будем увеличивать длительность импульсов на каждом шаге, скажем, на 10 мс Две кнопки управления позволят нам начать с длительности 120 мс То есть, начальная частота в этом случае оказывается равна 1/(120+120) = 4 (длительности в миллисекундах, но результат в герцах) Сделав около 100 шагов, мы понизим длительность импульсов до 20 мс А это соответствует частоте 25 Гц

Согласитесь, что диапазон частот от 2 Гц до 25 Гц, пожалуй, не самый интересный И нажимать 100 раз кнопку… не знаю, мне бы не понравилось Есть разные способы преодоления этой проблемы, и мы один из них рассмотрим сейчас

Вернёмся к программе, на которой завершалась предыдущая глава Я уже говорил, что программа становится «длинной», если мы добавим в неё ещё что-то, то она станет необозримой

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

Для создания подпрограммы мы воспользуемся пунктом Макрос основной программы, выбрав раздел Новый

Рис 231 Создание нового макроса

В диалоговом окне мы зададим имя макроса (по этому имени к нему и будем обращаться) и параметры, если они необходимы

Обратите внимание, что мы не добавляем локальную переменную и возвращаемый тип

Переменные бывают локальные, существующие только внутри подпрограммы (макроса), и глобальные К глобальным переменным мы можем обращаться в любом месте программы (то есть, и в подпрограмме)

Переменная, с которой мы оперируем в данном макросе, глобальная

Рис 232 Диалоговое окно нового макроса

В тело макроса мы перенесём наши ветвления программы (if.then), а на их место добавим вызов подпрограммы

Обратите внимание, что окно возвращаемого значения остаётся  пустым и неактивным

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

Рис 233 Созданный макрос и диалоговое окно вызова макроса

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

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

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

Для добавления комментария в программе Flowcode есть специальный программный элемент, который и называется Комментарий

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

Рис 235 Новый вид программы

В ранних версиях программы Flowcode с комментариями, написанными кириллицей, возникали некоторые проблемы Однако есть надежда, что они остались в прошлом

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

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

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

Проверить правильность работы можно и в программе Flowcode, используя пошаговое выполнение отладки и добавив в окно наблюдения переменную pause Но удобнее окончательную проверку сделать в программе ISIS

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

На рисунке видно, что нажимая кнопку, мы меняем частоту генератора Это видно (на рисунке) по возникающей паузе в 500 мс, которую мы добавили в подпрограмме

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

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

Мы можем использовать матричную клавиатуру, как это сделано, скажем, в мобильном телефоне Но это удобно, скорее, для цифровой клавиатуры

И, наконец, мы можем поступить так же, как поступили с изменением частоты генератора – каждое нажатие одной кнопки будет менять диапазон

Выбор зависит от наших предпочтений и возможностей микроконтроллера

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

Теперь давайте разберёмся с диапазонами, их количеством и «размером»

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

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

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