Проект с использованием MCC часть 04

Views: 1110


Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой.
Используем функции 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;        
    }

что это значит по шагам:

  1. __delay_ms (1000); – заставить “остановиться” программу на 1 секунду и ждать её истечения.
  2. 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 103 downloads

Теперь простого горения светиков нам не достаточно,...


 Мигать светодиодом просто в пустую используя рабочее время микроконтроллера, не допустимая растрата ресурсов, в это время вместо того , что бы тупо не ждать “чего” ПИК может например, опрашивать клавиатуру или чего рисовать на дисплее, как это сделать мигание светика без функции “делай” читаем в следующей статье…


Это может быть интересно


  • MPLAB® Harmony – или как это просто! Часть 2.MPLAB® Harmony – или как это просто! Часть 2.
    Views: 2660 Часть вторая – Первая программа на PIC32. Музыкальная тема к статье, слушаем: Для начала изучения PIC32 надо иметь или демоплату или самому её изготовить имея микроконтроллер. Начнем из …
  • I2C MODULE – PIC18F25K42 Device ID Revision = A001I2C MODULE – PIC18F25K42 Device ID Revision = A001
    Views: 1061 I2C MODULE Обход ошибок в версии I2C MODULE – PIC18F25K42 Device ID Revision = A001 В Серии K42 применен совершенно новый модуль шины I2C, который позволяет поддерживать все …
  • REFERENCE CLOCK OUTPUT MODULEREFERENCE CLOCK OUTPUT MODULE
    Views: 489 REFERENCE CLOCK OUTPUT MODULE Модуль формирования опорного тактового сигнала Модуль опорного тактового сигнала обеспечивает возможность посылать сигнал синхронизации на тактовый опорный выходной контакт или контакты (CLKR) в зависимости от …
  • Контроллер управления светодиодным освещением с дистанционным управлениемКонтроллер управления светодиодным освещением с дистанционным управлением
    Views: 1999 Все активнее светодиоды входят в нашу жизнь. Всё эффективнее становится светодиодное освещение. Всё ниже опускаются цены. Всё больше появляется возможностей получения сочных цветов, простоты в управлении. Всё чаще …
  • LED модуль P10 (1R) V706ALED модуль P10 (1R) V706A
    Views: 7652 Это еще одно чудо от китайского брата. Это монохромные матрицы, называются они P10 (1R) V706A, ну типа  R-красные, но не верьте паяют светики и зеленые и синие, в общем …
  • Development of temperature control and management systemsDevelopment of temperature control and management systems
    Views: 60 Catcatcat Electronics Пошта для контакту e-mail: catcatcat.electronics@gmail.com
  • MPLAB® Harmony – или как это просто! Часть 3.MPLAB® Harmony – или как это просто! Часть 3.
    Views: 2061 Часть третья – копнём немного глубже. Вы наверное заметили, что во второй главе, вроде сначала все шло как по маслу, а потом, что бы заморгали светики, я вставил …
  • Бегущие огни (ch-bo-36)Бегущие огни (ch-bo-36)
    Views: 2417 Проект на PIC-микроконтроллере PIC16F648A. Количество каналов 36. Для индикации используется подключение по матрице 6х6. Расположение светодиодов в одну линию. Все эффекты написаны для возможности увеличения количества светодиодов. Рекомендуется …
  • LED драйвер TM1639LED драйвер TM1639
    Views: 2153 TМ1639 позволяет работать на матрицу 8*8 или 8 семисегметных индикаторов. Может работать как на индикаторы с общим катодом, но и есть возможность подключать общим анодом. Для управления драйвером …
  • Altium Designer my setup system and project structureAltium Designer my setup system and project structure
    Views: 626 Используйте только последнее обновление!!! Updates https://catcatcat.d-lan.dp.ua/altium-designer-my-libraries-project-templates-system-settings-by-catcatcat-v23-09/        Тут хочу поделиться как я настраиваю Altium Designer и как я использую файлы DXPPreferences.DXPPrf для быстрой конфигурации и получения …



Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее

Комментарии

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.