Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Ход работы. В данной работе, для мигания светодиодом используется таймер А0В данной работе, для мигания светодиодом используется таймер А0. Он будет периодически переключать вывод порта Р1.0, тем самым управляя свечением светодиода. Использование таймера преследует еще одну цель. Так как микроконтроллер, у которого постоянно идет пустая работа в цикле, крайне неэффективен с точки зрения энергопотребления, чтобы использовать все его возможности нужно научиться работать с прерываниями, а на остальное время переводить его в состояние пониженного энергопотребления. Это особенно важно, если питание происходит от батарей, что позволяет продлить срок службы прибора, особенно автономного, доступ к которому затруднен. Пример программы, с использованием задержки посредством таймера, приведен ниже.
#include <msp430x11x1.h> // переходим в режим пониженного // энергопотребления
Принцип работы программы следующий. TACTL = TASSEL_2 + MC_2 + TAIE; // Тактирование от SMCLK, непрерывный режим. Перед запуском таймера надо выбрать источник тактирования. Таймер может тактироваться от 4 разных источников – двух внутренних: ACLK, SMCLK и двух внешних: TACLK или INCLK. Выбор источника тактовых импульсов осуществляется при помощи установки битов TASSELx (находятся в регистре TACTL). В данном случае используем тактирование от SMCLK (TASSEL_2 как раз и выбирает этот сигнал, определение можно посмотреть как обычно в заголовочном файле используемого микроконтроллера). Т. к. предделитель мы не используем, то биты его управления IDx не используются. MC_2 определяет режим работы таймера, в данном случае это непрерывный режим работы. Бит TAIE разрешает работу прерывания от Timer A0. Непрерывный режим характеризуется тем, что таймер считает от 0 до 0xFFFFh, как только он дойдет до 0xFFFFh происходит сброс и генерация прерывания с установкой флага TAIFG. Одним из возможных способов применения данного режима – это генерация временных интервалов или частот. В данном примере формируется постоянная частота, управляющая выходом P1.0. Далее разрешаем глобальные прерывания и переводим микроконтроллер в режим пониженного энергопотребления LPM0 (_BIS_SR(LPM0_bits + GIE);//Разрешаем глобальные прерывания и переходим в режим пониженного энергопотребления). Пример программы, обработчик прерывания от Timer A0.
#pragma vector=TIMERA0_VECTOR
В этом обработчике происходит смена значения на выводе Р1.0 при помощи обычной операции XOR. Задание на лабораторную работу находятся в таблице 1.15.
Таблица 1.15 – Задания к лабораторной работе 4
Продолжение таблицы 1.15
Отчет должен содержать: - название лабораторной работы, номер варианта, тема, цель, ход работы, выводы; - в ходе работы необходимо привести блок схему алгоритма программы, листинг готовой программы с построчным описанием, электрическую принципиальную схему подключения контроллера к отладочному комплекту.
|