В мире микроконтроллеров первой программой всегда становиться программа которая позволяет управлять состоянием порта. В нашем случае будет классика – мигание светодиода.

Для задания временных интервалов воспользуемся таймером TMR1 – это 16 битный таймер. В нашем варианте тактовая частота 80 МГц и предделитель для периферии настроен на 1. Сейчас просто настроим на максимальный коэффициент деления для того, чтобы можно было видеть мигание светодиода.

Расчет частоты на выходе таймера 80 000 000 / 256 / 65535 = 4,8 Гц. С учетом, того, что в программе будем использовать переключение, то частота мигания составит 2,4Гц.

Первое, что надо сделать в программе сообщить компилятору с каким контроллером он работает и какая тактовая частота:

Выполним конфигурацию микроконтроллера:

Настроим порты для работы в цифровом режиме:

Включим и настроим работу таймера 1:

И добавит в программу главный цикл работы:

Теперь можно загрузить проект

и протестировать его работу.

Рассмотрим таймер 1, откуда мы берем тактовую частоту и как можно управлять длительностью формируемых таймером интервалов времени.

catcatcat_pic32_03

Тактовые импульсы поступают с делителя тактовой частоты который тактирует всю периферию (на рисунке его нет, он относится к главному генератору, рассмотрим позже), через входной коммутатор, цель его выбрать источник тактовых импульсов настройкой битов TCS и TGATE выбираем внутренний генератор.  Далее проходит через модуль синхронизации напрямую, синхронизировать нам не нужно, так-как используется внутренний системный генератор и поступает на счетчик таймера. Таймер считаем приходящие импульсы, схема сравнения сравнивает с числом записанным в регистре PR1 и при совпадении устанавливает флаг переполнения. Если мы запишем в PR1 число 0xFFFF то получим максимальное время счета и саму низкую частоту на выходе таймера. Уменьшая значение записанное в регистре PR1 мы можем регулировать выходную частоту.

Изменим значение записанное в регистр PR1 и понаблюдаем за изменением периода мигания светодиода, для начала внесем значение 0x5FFF (изменим, увеличим частоту). Т.е. чем ниже число записанное в PR1  тем выше частота или меньше длительность формируемая на выходе таймера.

Как рассчитать частоту или длительность?

PBCLK – у нас 80 МГц,

Частота на выходе таймера Ft1 = PBCLK /Prescaler/PR1.

Для нашего примера в первом случае Ft1 = 80 000 000 / 256 / 0xFFFF = 80 000 000/256/65535 = 4.768 Гц.

Или длительность Dt1 = 1/ Ft1.

Dt1 = 1/4.768 = 0.209712 секунды.

Для начала достаточно, мы запустили микроконтроллер, настроили тактовый генератор (еще не понятно как) написали первую программу и заставили мигать светодиод.


версия от 2014-08-03

 

В записи нет меток.
Translate »

Copyright © Catcatcat electronics 2013-2019. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com