Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
05.03.2016
Размер:
220.31 Кб
Скачать

порты ввода-вывода, но иногда бывает необходимость задействовать их альтернативные функции. Для таких целей служат регистры PxSEL и PxSEL2, которые в паре определяют, какие именно операции будет выполнять каждый конкретный вывод. Поскольку разные выводы имеют разные альтернативные функции, то и установка соответствующих битов этих регистров будет производить разный эффект. Для более подробной информации следует обращаться к описанию конкретного используемого контроллера. В данном случае установка бита 6 в регистре P1SSEL подключает выход Р1.6 к блоку захвата/сравнения 1 таймера А.

В строке 21 осуществляется настройка таймера А. Выбран сигнал тактирования SMCLK (TASSEL1 = 1 и TASSEL0 = 0) с

коэффициентом деления, равным 1 (ID1 = 0 и ID0 = 0), режим работы – прямой счет (MC1 = 0 и MC0 = 1), прерывание по переполнению таймера разрешено (TAIE = 1).

Встроке 22 настраивается модуль захвата/сравнения в режиме сравнения (CAP = 0) сброс/установка (OUTMOD2=1, OUTMOD1=1, OUTMOD0=1). Этот режим соответствует генерации ШИМ и выводу его на выход Р1.6.

Встроке TACCR0 задается верхний предел, до которого будет считать таймер. В строке 24 разрешается прерывание от сторожевого таймера.

Встроках 3-7 описана подпрограмма обработки прерывания от сторожевого таймера, в котором происходит переключение светодиода LED 1 в противоположное состояние (строка 6).

Встроках 8-15 описана подпрограмма обработки прерывания от таймера А. При каждом срабатывании таймера происходит увеличение значения регистра TACCR1 на 10 (строка 11), а при достижении им максимального значения, равного TACCR0, он сбрасывается снова в 0 (строки 12-13). Таким образом осуществляется плавное увеличение яркости светодиода LED2. В строке 14 осуществляется сброс флага прерывания от таймера А. Его необходимо производить обязательно во избежание зацикливания контроллера.

11

Стоит заметить, что для сторожевого таймера флаг прерывания сбрасывается автоматически.

2 ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ

Студентам, претендующим на оценки «хорошо» и «отлично», выбрать из таблицы 2.1 задание в соответствии с номером по журналу группы и выполнить его с использованием программной среды IAR Embedded Workbench и отладочной платы MSP-EXP430G2 LaunchPad.

Студентам, претендующим на оценку «удовлетворительно», выбрать задание из таблицы 2.2 также в соответствии с номером по журналу группы.

Для выполнения заданий необходимо соответствующим образом сконфигурировать все необходимые регистры. Все действия, кроме инициализации, выполнять при помощи соответствующих прерываний.

 

Таблица 2.1 – Задание на лабораторную работу на оценки

 

«хорошо» и «отлично»

Задание

1.Сконфигурировать сторожевой таймер для работы в режиме интервального таймера с периодом срабатывания VLOCLK/8192. Для индикации работы программы при срабатывании таймера включать светодиод LED1 на 0,1 секунды. ЦПУ должно тактироваться от источника DCOCLK с частотой 500 кГц. При первом нажатии на кнопку S2 таймер останавливать, а светодиод LED1 выключать, при повторном

– снова запускать таймер.

2.Установить частоту сигнала ACLK равной 6 кГц, после чего сконфигурировать таймер А в режиме прямого счета с частотой ACLK/4. Максимальное значение счета таймера установить равным 1500. При срабатывании таймера переключать светодиод LED2 в противоположное состояние. При первом нажатии на кнопку S2 светодиод LED2 погасить и начать переключать светодиод LED1, а при повторном

12

нажатии – погасить LED1 и снова переключать LED2.

3.Установить частоту сигнала SMCLK равной 500 кГц. Сконфигурировать таймер А в режиме прямого счета с частотой SMCLK/2. Максимальное значение счета установить равным 1000. Сконфигурировать блок захвата/сравнения 1 для работы в режиме сравнения «сброс/установка», подключить вывод Р1.6 к выходу блока захвата/сравнения 1. При нажатии на кнопку S2 увеличивать яркость горения светодиода LED2 от нуля до максимума за 10 шагов, меняя значение регистра TACCR1. При достижении максимальной яркости следующим шагом уменьшить ее до нуля.

4.Установить частоту сигнала АCLK равной 3 кГц. Сконфигурировать сторожевой таймер для работы в режиме сторожевого таймера с периодом срабатывания ACLK/32768. При нажатии на кнопку S2 сбрасывать сторожевой таймер, индицируя это включением светодиода LED2 на 0,1 секунды. В случае срабатывания сторожевого таймера включать светодиод LED1 на 0,2 секунды.

5.Установить частоту сигнала SMCLK равной 275 кГц, после чего сконфигурировать таймер А в режиме непрерывного счета с частотой SMCLK/4. При срабатывании таймера синхронно переключать светодиоды LED1 и LED2 в противоположное состояние. При первом нажатии на кнопку S2 светодиод LED2 погасить продолжить переключать только светодиод LED1, а повторном нажатии – погасить LED1 и продолжить переключать LED2, а при третьем нажатии – снова переключать оба светодиода синхронно.

6.Установить частоту сигнала SMCLK равной 125 кГц, после чего сконфигурировать сторожевой таймер для работы в режиме интервального таймера с периодом срабатывания SMCLK/32768. При срабатывании таймера переключать в противофазе состояние светодиодов LED1 и LED2 на противоположное. При первом нажатии на кнопку S2 изменить период срабатывания таймера на SMCLK/8192, а при повторном – снова вернуть прежнее значение.

7.Установить частоту сигнала SMCLK равной 250 кГц, после

13

чего сконфигурировать таймер А в режиме прямого счета с частотой SMCLK/8. Максимальное значение счета таймера установить равным 40000. При срабатывании таймера включать светодиод LED2 на 0,2 секунды. При первом нажатии на кнопку S2 установить длительность включения светодиода LED2 равной 0,5 с, а при повторном нажатии – снова 0,2 с.

8.Установить частоту сигнала АCLK равной 12 кГц. Сконфигурировать таймер А в режиме непрерывного счета с частотой ACLK. Сконфигурировать блок захвата/сравнения 1 для работы в режиме сравнения «переключение», подключить вывод Р1.6 к выходу блока захвата/сравнения 1. При нажатии на кнопку S2 изменять частоту мигания светодиода LED2, меняя значение предделителя таймера от 1 до 4. При достижении максимального периода следующим шагом уменьшить его до минимального.

9.Установить частоту сигнала SMLK равной 250 кГц. Сконфигурировать таймер А в режиме прямого счета с частотой SMCLK. Максимальное значение счета установить равным 2500. Сконфигурировать блок захвата/сравнения 1 для работы в режиме сравнения «сброс/установка», подключить вывод Р1.6 к выходу блока захвата/сравнения 1. Сконфигурировать блок захвата/сравнения 2 для работы в режиме программного захвата. При нажатии на кнопку S2 осуществлять программный захват счетчика таймера и копировать его в регистр TACCR1, тем самым устанавливая случайным образом яркость светодиода LED2.

10.Установить частоту сигнала SMCLK равной 138 кГц, после чего сконфигурировать сторожевой таймер для работы в режиме интервального таймера с периодом срабатывания SMCLK/32768. При срабатывании таймера переключать в противофазе состояние светодиодов LED1 и LED2 на противоположное. При первом нажатии на кнопку S2 переключение светодиодов осуществлять синхронно, а при повторном – снова в противофазе.

14

Таблица 2.2 – Задание на лабораторную работу на оценку «удовлетворительно»

 

 

Задание

 

 

1.

Сконфигурировать таймер А в режиме прямого счета с

 

частотой SMCLK/8. Максимальное значение счета установить

 

равным 25000. При срабатывании таймера переключать

 

светодиод LED2 в противоположное состояние.

 

2.

Сконфигурировать таймер А в режиме прямого счета с

 

частотой SMCLK/4. Максимальное значение счета установить

 

равным 55000. При срабатывании таймера переключать

 

светодиод LED2 в противоположное состояние.

 

3.

Сконфигурировать таймер А в режиме прямого счета с

 

частотой SMCLK/8. Максимальное значение счета установить

 

равным 40000. При срабатывании таймера переключать

 

светодиод LED1 в противоположное состояние.

 

4.

Сконфигурировать таймер А в режиме непрерывного счета с

 

частотой SMCLK/8. При срабатывании таймера переключать

 

светодиод LED1 в противоположное состояние.

 

5.

Сконфигурировать таймер А в режиме непрерывного счета с

 

частотой SMCLK/4. При срабатывании таймера переключать

 

светодиод LED2 в противоположное состояние.

 

6.

Сконфигурировать таймер А в режиме непрерывного счета с

 

частотой SMCLK/2. При срабатывании таймера синхронно

 

переключать светодиоды LED1 и LED2 в противоположное

 

состояние.

 

 

 

 

7.

Сконфигурировать сторожевой таймер для работы в режиме

 

интервального

таймера

с

периодом

срабатывания

 

SMCLK/8192. При срабатывании таймера переключать

 

светодиод LED2 в противоположное состояние

 

8.

Сконфигурировать сторожевой таймер для работы в режиме

 

интервального

таймера

с

периодом

срабатывания

 

SMCLK/327682. При срабатывании таймера переключать

 

светодиод LED1 в противоположное состояние

 

9.

Сконфигурировать таймер А в режиме прямого счета с

 

частотой SMCLK/4. Максимальное значение счета установить

 

равным 60000.

При срабатывании таймера

переключать

15

светодиоды LED1 и LED2 в противоположное состояние в противофазе.

10.Сконфигурировать таймер А в режиме непрерывного счета с частотой SMCLK/4. При срабатывании таймера переключать светодиоды LED1 и LED2 в противоположное состояние в противофазе.

3 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ОТЧЕТА

Отчет должен быть оформлен в соответствии с требованиями к оформлению технической документации на листах формата А4 в печатном виде.

Содержание отчета должно включать следующие пункты:

1.Титульный лист.

2.Название и цель лабораторной работы.

3.Задание на лабораторную работу.

4.Текст программы на языке С с комментариями

4.Выводы по работе.

4 ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

1.Сущность прерываний.

2.Обработка внешних прерываний.

3.Снижение энергопотребления процессора при работе с прерываниями.

5 СПИСОК РЕКОМЕНДОВАННЫХ ИСТОЧНИКОВ

1.Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка приложений / пер. с англ. Евстифеева А. В. — М. :

Додэка XXI, 2010. — 544 с.: ил.

2.Семейство микроконтроллеров MSP340. Рекомендации по применению: Пер. с англ. — М: Серия «Библиотека Компэла». ЗАО «Компэл», 2005. — 544 с.

16