Views: 1135
Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой.
Используем функции delay, напрягаться откуда они берутся не будем, самое главное , что пишутся они так:
__delay_ms(x) // request a delay in milliseconds – задержка в миллисекундах
__delay_us(x) // request a delay in microseconds – задержка в микросекундах
для управления сторожевым таймером в семействе PIC18
__delaywdt_ms(x) // request a delay in milliseconds – задержка в миллисекундах
__delaywdt_us(x) // request a delay in microseconds – задержка в микросекундах
А почитать можно в файле MPLAB_XC8_C_Compiler_User_Guide.pdf который вы можете найти в папке …Microchip/xc8/v1.40/docs… или нажмите на пиктограмму
и буди вам чудо и откроются секреты описания, прямо в браузере!
Но вернемся к нашим баранам типа delay, добавим в главный цикл в программе (который нам любезно уже создал МСС) следующие строки:
LD1=0; // погасить LD2=1; // засветить while (1) { CLRWDT(); //сброс сторожевого таймера +++++++++++++++++++++- // Add your application code __delay_ms (1000); LD2=!LD2; }
что это значит по шагам:
- __delay_ms (1000); – заставить “остановиться” программу на 1 секунду и ждать её истечения.
- LD2=!LD2; – взять и записать в LD2 его противоположное значение, т.е. если LD2 состояние 1, записать ноль и наоборот. символ “!” – это символ отрицания. Вообще правильно написать LD2 = !LD2;, но компилятор грамотный сам разберется ;)
Еще один нюанс при работе с включенным сторожевым таймером, время задержки не должно превышать период работы сторожевого таймера, об настройке можно позаботиться в момент конфигурирования
или воспользоваться функцией в файле
void WDT_Initialize(void) { // WDTPS 1:65536; SWDTEN OFF; WDTCON = 0x16; }
естественно изменив его параметры.
Для реализации всего задуманного, необходимо только нажать кнопочку
Проверить нашу программу в железе, светик мигает!! А измени так:
LD1=0; // погасить LD2=1; // засветить while (1) { CLRWDT(); //сброс сторожевого таймера +++++++++++++++++++++- // Add your application code __delay_ms (1000); LD2=!LD2; LD1=!LD1; }
и заставим мигать два светика попеременно, поэкспериментируем с длительностью.
На заметку, часто нажимать мышкой на кнопку может быть унизительно, что бы этого избежать можно запрограммировать функциональные клавиши, например, F6 для выполнения команды компиляции проекта это намного удобнее. Это делается так: Выбираем закладку инструменты, потом опции
выберем настройку клавиш (комбинации клавиш), откроется
типа море всего, как найти, “то шо доктор приписал”, когда вы наводите мышкой на нашу кнопочку, то появляется её коварное название нам достаточно только первого слова или его его первых букв Make введем из в поле поиска6
и вот это коварная запись в самом низу, у меня она уже запрограммирована, а вам потребуется сделать двойной клик на поле Shortcut и нажать клавишу F6, потом кнопку OK. Все окно закроется и вы теперь можете наслаждаться тиская клавишу F6 и запуская проект на компиляцию не трогая ненавистную мышку!
Проект по этой теме
Проект с использованием MCC часть 04 157.08 KB 107 downloads
Теперь простого горения светиков нам не достаточно,...Мигать светодиодом просто в пустую используя рабочее время микроконтроллера, не допустимая растрата ресурсов, в это время вместо того , что бы тупо не ждать “чего” ПИК может например, опрашивать клавиатуру или чего рисовать на дисплее, как это сделать мигание светика без функции “делай” читаем в следующей статье…
Это может быть интересно
- ESP32-первое знакомствоViews: 6438 Музыкальная тема к статье, слушаем: Настало время познакомиться c ESP32 и для меня, для этого я приобрел в ГАММЕ отладочную плату с модулем ESP-WROOM-32 (ESP32-DevKitC). Первая задача, как …
- VU Meter Tower ART – part 2Views: 978 Проект – VU Meter Tower ART получил продолжение в своем развитии. Теперь можно заказать набор деталей из акрила для самостоятельной сборки. В проект корпуса внесено целый ряд доработок, …
- Customs codes for exportViews: 134 Митні коди (HS Code) для надсилання посилок за кордон. Для відправки товару за кордон на сьогодні необхідно зазначати митні коди. Часто визначення коду займає багато часу. Для …
- Проект с использованием MCC часть 13Views: 1060 Так как используя MCC мы можем его использовать со своими библиотеками, поэтому настало время и свое создать. Для начала откроем наш заголовочный файл в нем очень много букв: По …
- Moving average – скользящее среднееViews: 2240 Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания …
- Четырех канальный терморегулятор ch-4000Views: 3184 Четыре независимых канала регулирования температуры, одновременно можно подключить 16 датчиков температуры DS18B20 с удалением до трехсот метров. Можно для регулировки выбрать любой датчик, подключенный к устройству. Каждый канал может работать …
- ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302Views: 2430 На плате ch-4000 очень легко собрать устройство регулятора температуры и влажности. Датчик DHT11 самый недорогой вариант для создания такого устройства, правда точность его не велика, но для бытовых устройств …
- Trimax – кодирование и декодирование ИК-командViews: 2181 Первое, что надо понять назначение кнопок клавиш пульта, а также, что за кодирование реализовано в ИК- пульте. Для назначения клавиш обратимся к описанию, а для взлома кодирования воспользуемся …
- Дифференциальный терморегуляторViews: 3995 Дифференциальный терморегулятор ch-3020 Назначение. Ch-c3020 представляет собой дифференциальный терморегулятор. Основное назначение солнечные системы горячего водоснабжения, а также вентиляционные системы управление притоком свежего воздуха. Контроллер позволяет работать пяти режимах. …
- WiFi ESP8266 ESP-202 (ESP-12F)Views: 7686 Первое знакомство, сначала надо его купить… http://voron.ua/catalog/024404 Схема для подключения и тестирования По схеме ставим две кнопки, сброс и кнопку BT2, для перевода в режим обновления прошивки. Если надо сделать …
Комментарии