Views: 1312
Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой.
Используем функции 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 115 downloads
Теперь простого горения светиков нам не достаточно,...Мигать светодиодом просто в пустую используя рабочее время микроконтроллера, не допустимая растрата ресурсов, в это время вместо того , что бы тупо не ждать “чего” ПИК может например, опрашивать клавиатуру или чего рисовать на дисплее, как это сделать мигание светика без функции “делай” читаем в следующей статье…
Это может быть интересно
CCP – модуль в режиме Compare на примере PIC18Views: 3251 CCP – модуль можно использовать в трех режимах: Capture – позволяет захватывать входной сигнал и определять его параметры (длительность или частоту). Дополнительно управлять внутренними модулями. Compare – позволяет …
Toyota Auto Fader – Модуль включения усилителяViews: 2084 Toyota Auto Fader – Модуль включения усилителя. Часто автолюбители прибегают к замене штатного головного устройства на универсальное мультимедийное, в котором значительно расширены функциональные возможности. Если возникает желание оставить …
AD9833 – Programmable Waveform GeneratorViews: 3076 Простой генератор звуковых частот на AD9833. Для тестирования БПФ в светомузыке мне нужен был генератор звуковых частот. Я использовал советский Г3-112, но он себя давно изжил. Все думал купить …
Простой цифровой регулятор мощностиViews: 7760 Простой регулятор мощности с цифровой индикацией. Этот проект создан как обучающий, для ознакомления с основами построения сетевых регуляторов мощности. Устройства подобного типа можно использовать для управления освещением, скоростью …
Acquaintance with audio-bluetooth modules F-6888 (BK3254).Views: 2392 Для проектов появилось необходимость познакомиться с недорогими модулями китайского производства, которые можно приобрести у нас в Украине и у китацев, на алиэкспрессе. Так как меня интересует не просто, …
MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовViews: 809 При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном …
Счетчики посетителейViews: 1300 Вас сосчитали!? или счетчики посетителей. Для чего нужны счетчики посетителей? Какие они бывают? ТОРГОВЛЯ. Подсчитайте, сколько ваш магазин посещает человек за день. Кок много человек приходит утром, какое …
Altium Designer my Libraries, Project templates, System settings by Catcatcat V23.09Views: 667 September 2023 component base update. Release updates V. – 23_09 added new components. Changed the structure of the database. Configuration file name – DXPPreferences1.DXPPrf. Added project CLUBBEST_50_Light. …
Altium Designer – создание рисунков на печатной платеViews: 3549 Для создание рисунков на печатной платы в Altium Designer можно использовать возможность использовать в Altium Designer сторонних скриптов. Мне возможность эта очень понравилась и я решил её расшарить …
Проект с использованием MCC часть 01Views: 2695 Для изучения MCC я выбрал простой контроллер PIC16F1509. Выбор его был обусловлен богатой новой периферией которую можно изучить. Для начала была собрана схема на макетной плате Внешний вид …







Комментарии