
Views: 1669
Первым делом перенастроим регистры конфигурации, следующим образом:
- Отключим выход генератора (CLKOUT function is disabled. I/O function on the CLKOUT pin)
- Включим сторожевой таймер (WDT enabled)
После этой настройки мы должны будем увидеть в изменении графического вида контроллера
Настройки конфигурации должна выглядеть так
Теперь перейдем к настройке портов, необходимо перейти к окну Pin Manager: Grid (MCC)
И сразу вопрос, что с этим делать? Дополнительно откроем закладку
Теперь в окне Pin Manager: Grid (MCC) в разделе Pin Module настроим все выводы портов на выход
Обратите внимание при настройке портов на выход, будет заполняться окно
После окончания “клацанья на замочки” мы получим
Теперь перейдем к более конкретному анализу настройки портов, первое выводы могут быть “цифровые” и “аналоговые”, смотрим на столбец со свойством Analog
И снимем птички Аналог с выводов, и одновременно снимем птички в колонке подтягивающих резисторов WPU, после окончанию процесса нажмем кнопочку сгенерировать
и обратим внимание как изменилось содержимое функции PIN_MANAGER_Initialize в файле pin_manager.c
void PIN_MANAGER_Initialize(void) { /** LATx registers */ LATA = 0x00; LATB = 0x00; LATC = 0x00; /** TRISx registers */ TRISA = 0x08; TRISB = 0x00; TRISC = 0x00; /** ANSELx registers */ ANSELC = 0x00; ANSELB = 0x00; ANSELA = 0x00; /** WPUx registers */ WPUB = 0x00; WPUA = 0x08; OPTION_REGbits.nWPUEN = 0; /** APFCONx registers */ APFCON = 0x00; }
LATx registers – управление сигналами на выходе порта – низкий уровень (0);
TRISx registers – направление сигналов – все на выход, кроме TRISA = 0x08 – это наш вход MCLR;
ANSELx registers – аналоговые входы отключены;
WPUx registers – подтягивающие резисторы отключены (потом мы еще не раз вернемся к этому регистру, будем подключать тактовые кнопки для организации ввода данных);
APFCONx registers – регистр настройки альтернативного подключения периферийных модулей. Это тоже интересный регистр, но о нем немного по позже.
Сделано много, даже можно перепрошить микроконтроллер, но это го маловато для получения первого эффекта типа “гори светодиод”. Как вы должны были заметить, что по схеме мы к ногам 7 и 8 порты RC3 и RC6 подключены светодиоды, они подключены через токоограничивающие резисторы и подключены к “земле”. Это значит, если мы прошьем наш ПИК (так будем в дальнейшем ругаться) светики гореть не будут. Что реально обидно!
Для начала прибегнем к одному приему который в будем может стать довольно удобным, это опишем наши светодиоды так, что бы компилятор понимал, что если мы будем писать LD1=1; это значит подать единицу на порт к которому подключен нас светик.
Откроем главный файл проекта, в вставим следующие строчки описания светодиодов перед началам самой программы, а начнем с символа # откроется окно в котором выберем define
и пропишем:
// описание подключения светодиодов #define LD1 LATC3 // #define LD2 LATC6 //
Это значит, что если мы в тексте пишем LD1 то компилятор будет понимать, что мы хотим обратится к 3 биту регистра LATC который управляет уровнями сигнала на выходе порта С ПИКа.
И самое главное, что надо сделать!!! Это мы включили сторожевой таймер, а за него теперь надо не забывать, он контролирует работу программы ПИКа, и если его периодически не сбрасывать, то он будет считать, что программа работает некорректно и будет выполнять перезапустит ПИК. Для того, что бы этого не произошло, когда программа правильно работает существует в XC8 макрос (функция, как удобно)
CLRWDT(); //сброс сторожевого таймера +++++++++++++++++++++-
Для этого добавим эту команду в начало программы и главный цикл, для начала этого будут вполне достаточно. А теперь зажжем один наш светик.
Наша программа должна иметь вид:
// описание подключения светодиодов #define LD1 LATC3 // #define LD2 LATC6 // void main(void) { // initialize the device SYSTEM_Initialize(); CLRWDT(); //сброс сторожевого таймера +++++++++++++++++++++- // When using interrupts, you need to set the Global and Peripheral Interrupt Enable bits // Use the following macros to: // Enable the Global Interrupts //INTERRUPT_GlobalInterruptEnable(); // Enable the Peripheral Interrupts //INTERRUPT_PeripheralInterruptEnable(); // Disable the Global Interrupts //INTERRUPT_GlobalInterruptDisable(); // Disable the Peripheral Interrupts //INTERRUPT_PeripheralInterruptDisable(); LD1=0; // погасить LD2=1; // засветить while (1) { CLRWDT(); //сброс сторожевого таймера +++++++++++++++++++++- // Add your application code } }
Обратите внимание: При компиляции может появляться (особенно в ново созданном проекте) сообщение
установите птичку (ну типа не хочу тебя видеть), чтобы в дальнейшем это окно не появлялось.
Если все делаете корректно моему описанию, то у вас не должно возникать проблем а окне Output – программатора всегда будет сообщение
The following memory area(s) will be programmed: program memory: start address = 0x0, end address = 0x7ff configuration memory Programming/Verify complete
После программирования микроконтроллера мы увидим, что LD1 не горит LD2 горит. Изменит параметры
LD1=1; // засветить LD2=1; // засветить
и поиграемся управлением портами.
Для удобства готовый проект для этой стадии изучения

Проект с использованием MCC часть 03 155.90 KB 160 downloads
Проект, для текущей стадии изучения (03) ...В четвертой части заставим мигать светики …
Это может быть интересно
TM1650 драйвер LED семисегментного индикатора
Views: 18155 Китайский производитель Shenzhen Titan Micro Electronics Co., Ltd. Выпускает широкую линейку драйверов управления светодиодными дисплеями, которые позволяют разгрузить микроконтроллер для основной работы, главная особенность этих драйверов не только …NeoPixel LED and PIC24
Views: 690 Популярность однопроводной шины для управления светодиода типа WS2812 не ослабевает, а новые типы светодиодов в корпусах 3,5*3,5мм, 2,0*2,0мм становяться все больше привлекательными. Построение дисплеев для анимации требуют все …Сумеречное реле
Views: 1603 Реле управления освещением, датчик день-ночь – одним словом фотореле для управления освещением или формирования сигнала для системы умный дом о понижении или повышении освещенности относительно заданного уровня. Реле выполнено по классической схеме, конденсаторный блок питания, от сети переменного тока …Development of temperature control and management systems
Views: 170 Catcatcat Electronics Пошта для контакту e-mail: catcatcat.electronics@gmail.comLCD драйвер – UC1601s
Views: 1752 http://svetomuzyka.narod.ru/project/UC1601s.html Читайте обновление на http://catcatcat.d-lan.dp.ua/?page_id=178 В данный момент можно приобрести в ООО “Гамма” несколько типов индикаторов на драйвере UC1601s. RDX0048-GC, RDX0077-GS, RDX0154-GC и RDX0120-GC выполнены по технологии COG.Ссылки на интересные источники
Views: 915 Сбор 3D моделей от André L’Hérault конденсаторы, резисторы, индуктивности dropbox IPC-SM-782 Surface Mount Design and Land Pattern Standard Видео уроки по Altium designer Alexey Sabunin https://www.youtube.com/channel/UCG7N5CqXpyK8nQjr1EmMgng Сергей Булавинов https://www.youtube.com/channel/UCISAMXRnN_Qw9UTjUwZI1Jw Robert Feranec https://www.youtube.com/user/matarofe …Acquaintance with audio-bluetooth modules F-6888 (BK3254).
Views: 2271 Для проектов появилось необходимость познакомиться с недорогими модулями китайского производства, которые можно приобрести у нас в Украине и у китацев, на алиэкспрессе. Так как меня интересует не просто, …Обновление ESP8266 c ESPFlashDownloadTool_v3.6.3
Views: 3644 Технология обновления следующая: Загружаем программу со страницы espressif.com. Разархивируем. Где находятся файлы, для прошивки? Заходим в каталоги Подключаем по схеме в статье WiFi ESP8266 (замыкаем BT2, перемычка). Запускаем программу, …CLUBBEST-50-Light
Views: 384 CLUBBEST-50-LIGHT Зміст Короткий опис проекту. 1 Опис схемотехніки візуалізатора музики. 2 Аудіо вхід. 3 MCU. 4 Цифровий вихід. 5 Схема живлення MCU. 6 Складання пристрою. 7 Список …Система отопления на солнечных коллекторах от Дмитрия (rv3dpi)
Views: 3383 Солнечные коллекторы для отопления в Европе используют в более 50% от общего количества установленных гелиосистем. Однако следует понимать, что гелиосистемы предназначены лишь для поддержки отопления и экономии затрат на основную …
Комментарии