Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 2 / Лаба_2 (Аня).docx
Скачиваний:
2
Добавлен:
08.04.2022
Размер:
329.31 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра БТС

ИНДИВИДУАЛЬНОЕ

ДОМАШНЕЕ ЗАДАНИЕ №2

по дисциплине «Микропроцессорные системы»

Тема: Программирование таймера

Студентка гр. 7501

Кирьянова А.М

Преподаватель

Анисимов А.А.

Санкт-Петербург

2020

Цель работы: запрограммировать задержки для мигания светодиодом на языках С и Assembler.

Используемые инструменты: Отладочная плата ATTINY2313, интегрированная среда разработки AVR Atmel Studio 7.

Основные теоретические положения

  1. Устройство отладочной платы attiny2313

ATtiny2313  низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой.

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды.

Рисунок 1  Устройство отладочной платы ATTINY2313

  1. Источники тактовой частоты

Для работы любого микроконтроллера его необходимо обеспечить стабильным источником тактовых импульсов. Для микроконтроллеров фирмы Atmel возможно несколько вариантов.

  • Воспользоваться внутренним генератором на RC-цепочке;

  • В качестве источника тактовых импульсов может выступать внешний кварцевый резонатор (или керамический). Максимальная поддерживаемая частота – 16 МГц (помним, что энергопотребление микроконтроллера возрастает с увеличением рабочей частоты, причём значительно). Для подключения внешнего кварцевого резонатора используются специальные выводы – XTAL1 и XTAL2, также для подключения необходимо использовать дополнительные конденсаторы емкостью в 15 – 30 пФ, в зависимости от частоты. Пример подключения кварцевого резонатора приведен на рис. 2.

Рисунок 2  Схемы тактирования микроконтроллера

  • Вариант, нетребовательный к точности задаваемой системной частоты – воспользоваться вместо резонатора обычной RC-цепочкой, при этом для её подключения используются те же самые выводы, что и в предыдущем случае.

Емкость конденсатора RC-цепочки должна быть не ниже 22пФ. Также, с помощью фьюз-бита CKOPT мы можем подключить между выводом XTAL1 и землёй внутренний конденсатор емкостью 36 пФ, что позволяет избавиться от внешнего конденсатора.

  • Последний вариант – использование внешнего генератора: подключаем выход генератора к выводу XTAL1. Подобный способ тактирования микроконтроллера обеспечивает максимальную точность, единственный недостаток – подобные генераторы имеют достаточно высокую стоимость.

С помощью такого кварца можно с высокой точностью отсчитывать секундные интервалы. Для подключения часового кварца используются отдельные выводы TOSC1 и TOSC2, причём использование дополнительных внешних конденсаторов не требуется (рис. 3).

Рисунок 3  Альтернативные схемы тактирования микроконтроллера

  1. Управляющие регистры таймера

Основными управляющими регистрами являются регистры TCCRxn (Timer/Counter Control Register, для микроконтроллера AtTiny2313 предусмотрено три управляющих регистра – TCCR0A, TCCR0B и TCCR0C, которые определяет режим работы таймера и значение коэффициента предделителя.

Значение предделителя можно изменить в регистре TCCR1B, за него отвечают три бита: CS12:CS11:CS10 (Clock Select), которые как раз и определяют коэффициент деления тактовых импульсов микроконтроллера.

Рисунок 4  регистр TCCR1B

Здесь возможны следующие варианты (табл. 1).

Таблица 1  Биты, определяющие значение предделителя таймера

CS02

CS01

CS01

Описание

0

0

0

Нет источника импульсов (Таймер остановлен)

0

0

1

clkIO/1 (No prescaling)

0

1

0

clkIO/8 (From prescaler)

0

1

1

clkIO/64 (From prescaler)

1

0

0

clkIO/256 (From prescaler)

1

0

1

clkIO/1024 (From prescaler)

1

1

0

External clock source on T1. Clock on falling edge.

1

1

1

External clock source on T1. Clock on rising edge.

Режим работы таймера T1 определяется состоянием четырех битов WGM10WGM13, которые находятся в двух разных управляющих регистрах TCCR1A и TCCR1B (что в целом не очень удобно).

Рисунок 5  регистры TCCR1A и TCCR1B

Зависимость режима работы таймера от состояния этих разрядов показана в табл. 2.

Таблица 2  Режимы работы таймера

WGM1

[3:0]

Режим работы таймера

TOP

Обновление бита OCR1x

Установка прерыв. TOV1

0

0000

Normal

0xFFFF

Immediate

MAX

1

0001

PWM, Phase Correct, 8-bit

0x00FF

TOP

BOTTOM

2

0010

PWM, Phase Correct, 9-bit

0x01FF

TOP

BOTTOM

3

0011

PWM, Phase Correct, 10-bit

0x03FF

TOP

BOTTOM

4

0100

CTC (Clear Timer on Compare)

OCR0A

Immediate

MAX

5

0101

Fast PWM, 8-bit

0x00FF

TOP

TOP

6

0110

Fast PWM, 9-bit

0x01FF

TOP

TOP

7

0111

Fast PWM, 10-bit

0x03FF

TOP

TOP

8

1000

PWM, Phase and Frequency Correct

ICR0

BOTTOM

BOTTOM

9

1001

PWM, Phase and Frequency Correct

OCR0A

BOTTOM

BOTTOM

10

1010

PWM, Phase Correct

ICR0

TOP

BOTTOM

11

1011

PWM, Phase Correct

OCR0A

TOP

BOTTOM

12

1100

CTC (Clear Timer on Compare)

ICR0

Immediate

MAX

13

1101

Reserved

-

-

-

14

1110

Fast PWM

ICR0

TOP

TOP

15

1111

Fast PWM

OCR0A

TOP

TOP

Режим Normal. Это наиболее простой режим работы таймеров, он же единственный режим в младших моделях семейства. В этом режиме счетный регистр функционирует как обычный суммирующий счетчик. По каждому импульсу тактового сигнала осуществляется инкремент счетного регистра. При переходе через значение $FF возникает переполнение, и счет продолжается со значения $00. В том же такте сигнала, в котором обнуляется регистр TCNTn, устанавливается в «1» флаг переполнения счетного регистра TOVn (Timer Overflow).

Соседние файлы в папке Лаба 2