Создание проекта в MPLAB для PIC32

 

 

 

 

 

 

 

В предыдущей статье мы бегло ознакомились с характеристиками и особенностями микроконтроллеров PIC32.
В данной статье мы создадим первый проект в среде MPLAB и напишем первую программу используя компилятор C32.

Начнем с установки ПО.
1. Скачаем с сайта микрочип актуальную версию MPLAB и компилятор C32 ( есть ограничение в 60 дней, после этого будет отключена некоторая оптимизация. Для устранения недуга пишите на почту или на наш форум ) MPLAB желательно последний – в нем есть поддержка новых семейств – PIC32MX1/2 – маловыводные мк , наиболее подходящие для изучения если нет готовой отладочной платы. Корпус SOIC 28 без труда припаяет любой «пиколюб»


2. Установим сначала MPLAB, затем C32.
3. Запускаем MPLAB. Проект можно вручную или используя инструмент Projeсt-> Project Wizard. Воспользуемся вторым способом. Рис 1.


4. Выберем тип микроконтроллера

Для изучения будем использовать 2 платы — фирменную плату от Olimex и самодельную для маловыводных семейств.
5. Далее выбираем компилятор


6. Следующим шагом обзываем как-нибудь наш новый проект.

и указываем путь для проекта, нажав BROWSE. Лучше это сделать в папке-               Program Files\Microchip\MPLAB C32 Suite\Наш проект
7. Далее можно добавить необходимые файлы к нашему проекту.

Добавлять пока ничего не будем.
8. Итак

. Жмем «Готово» . Программа предложит сохранить рабочее поле — файл .mcw – жмем «сохранить»

Создали свой первый проект. Слева видим дерево файлов с папками Source Files, Header Files и т.д.  Нам необходимо добавить файл .c для работы с проектом. Делаем это так: в окне дерево файлов жмем правой кнопкой мыши на папке Source Files и выбираем пункт Add Files.

Открывается окно Add Files in Project.  Убеждаемся , что в находимся в папке со своим первым проектом а также выбираем отображение всех файлов в папке и жмем правой кнопкой в поле окна выбираем Создать-> Text File.

Далее меняем расширение .txt на .с и обзываем его main.c подтверждаем смену расширения файла

 

Добавляем данный файл к проекту

Итак. У нас есть минимальный шаблон для реализации первого проекта.

Вставим нижепреведенный код в файл main.c . Приведенный код устанавливает PORTB8,PORTB9,PORTB10,PORTB11 в состояние лог 1.


// Подключение библиотек периферии от Microchip
#include <plib.h>
#include <p32xxxx.h>


#define SYS_FREQ (80000000L)
#define PBCLK (40000000L)

// Настройка тактирования
// Задача — получить скокрость системной шины = 80 Мгц
// Скорость периферийной шины дожна быть 40 Мгц
// ##########################################################
// Конфигурирование 2-х байтов — DEVCFG1,DEVCFG2. Раздел Configuration Users manual
// 3 первых регистра: Для нормальной работы PLL входная частота должна быть 4<F<5 Мгц.
// Имеем кварц 8 Мгц. Установим FPLLIDIV = DIV_2 т.е. 4 Мгц.

// Установим FPLLMUL = MUL_20 и FPLLODIV = DIV_1 для достижения цели 4 Мгц *1*20 = 80 Мгц
// Один системный тик при 80 Мгц = 0,0000000125 сек=0,0125 мксек= 12,5 нсек
// Периферия тикает со счетом 25 нсек
// #########################################################
#pragma config FPLLMUL = MUL_20 //PLL multiplier of 20
#pragma config FPLLIDIV = DIV_2 //PLL input divider 1:2
#pragma config FPLLODIV = DIV_1 //PLL output divider 1:1
#pragma config FWDTEN = OFF //Отключили сторожевой таймер
#pragma config POSCMOD = XT //Oscillator mode XT
#pragma config FNOSC = PRIPLL //Используем основной кварц + PLL
#pragma config FPBDIV = DIV_2//Тактирование шины периферии = скорость системной шины/2. FPBDIV=SYSCLK/2
#pragma config ICESEL = ICS_PGx2//Выбор ножек для подключения программатора

int main(void)
{

// ######## ########Общие настройки ###################
SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE); // Настройка кеша
DDPCONbits.JTAGEN = 0; // Отключили JTAG port

mPORTBSetPinsDigitalOut(BIT_8|BIT_9|BIT_10|BIT_11); //Настройка портов на вывод
mPORTBSetBits(BIT_8|BIT_9|BIT_10|BIT_11); //Установим лог 1 на данных выодах

while (1)
{
}

}

Запись опубликована в рубрике Микроконтроллеры, Теория с метками , , , , , , , , . Добавьте в закладки постоянную ссылку.