Программирование на языке Си процедур управления. Основы разработки и отладки управляющих программ на языке Си для микроконтроллеров семейства PIC18, страница 2

Используя значок  Reset из меню на панели отладчика, выполните сброс МК.  Затем выполните  программу в режиме Animate, щелкнув мышью по соответствующему значку. Убедитесь по содержимому окна Watch, что при переходе в окне редактора программы  led1.c  зеленой стрелки на оператор бесконечного цикла while(1), разряд  RC0 порта С будет периодически переключаться.  Остановите выполнение программы, щелкнув по значку  Halt.

После тестирования программы закройте все окна на рабочем столе MPLAB IDE. Затем закройте  проект, выбрав пункт меню  Project > Close… . На экране останется пустое окно MPLAB IDE.

3.2. Программирование и исследование временных задержек

В программе  led1.c  изменение состояний линии порта RC0 происходит очень быстро, практически за время выполнения одной команды МК. Для того, чтобы переключение светодиода было видно человеческому глазу, нужно ввести временную задержку между переключениями порядка долей секунды.

На языке Си временную задержку можно реализовать с помощью, например, следующей функции:

void  delay(void)

{

unsigned int i;                    // объявить переменную i как целое

// беззнаковое  двухбайтное число

for( i = 0; i < 30000; i++)

;

}

В функции delay объявляется переменная i как целое беззнаковое двухбайтное число. Оно может изменяться в программе от 0 до 65535. В цикле  for производится инкремент переменной  i, начиная от  i = 0 и заканчивая i = 30000. Никаких других действий, кроме инкремента  i, функция  delay на производит.  Определить теоретически величину задержки, реализуемой функцией  delay, довольно затруднительно, так как неизвестна ее реализация, выполненная компилятором C18. Поэтому обычно величину задержки определяют экспериментально с помощью симулятора.

3.2.1. Создайте проект с именем pr5  в новой папке, которую можно назвать proj5. С этой целью выберите пункт меню  Project > New. На рабочем столе MPLAB IDE откроется окно New Project. Введите имя создаваемого проекта  pr5  в строку Project Name. Затем переведите курсор в строку Project Directory и запишите полный путь  к проекту, который будет находиться в новой папке с именем  proj5:

e:\Users\MPT\PM-41\Ivanov\proj5

Щелкните по кнопке OK для подтверждения выбора.

3.2.2. Наберите текст программы led2.c в окне редактора (с использованием цветовой кодировки текста при наборе).

/*****************************************************

led2.c – программа переключения светодиода VD1 с использованием временной задержки

********************************************/

#include<p18f242.h>

#pragma config  WDT = OFF, OSC = HS

void delay(void);            // прототип функции задержки  delay

void main(void)

{

PORTC = 0;

TRISC = 0;

while(1)

{

PORTCbits.RC0 = 1;    // включить VD1

delay( );                         // задержка

PORTCbits.RC0 = 0;    // выключить VD1

delay( );                         // задержка

}

}

void delay(void)                       // функция задержки

{

unsigned int i;  

for( i = 0; i < 30000;  i++)

;

}

3.2.3.  Теперь необходимо внести исходный файл led2.c и файл сценария линкера 18f242.lkr в созданный проект pr5.

3.2.4.  Далее необходимо проверить установки опций для создания проекта с помощью пункта меню Project > Build Options... > Project.  

3.2.5. После того, как были выполнены все указанные выше пункты по предварительной подготовке проекта, можно приступить к его построению, используя пункт меню Project > Build All .

3.2.6. В случае успешной компиляции проекта выполните тестирование программы с помощью симулятора MPLAB SIM.  С этой целью выберите пункт меню  Debugger > Select Tool > MPLAB SIM . Затем с помощью пункта меню  View > Watch откройте окно наблюдения Watch и занесите в него переменную PORTC (выбрать из списка SFR – регистры специальных функций).

3.2.7. Далее нужно подготовить средства для измерения временных параметров программы led2.c. С этой целью необходимо установить тактовую частоту работы МК. Для этого выберите пункт меню Debugger > Settings…. В открывшемся окне Simulator Settings выберите вкладку Osc/Trace. Установите в поле Processor Frequency число 4, что соответствует тактовой частоте  4 МГц. Вид окна для установки частоты процессора приведен на рис. 2.