Главная  Микроконтроллеры 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [ 12 ] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

Экономичный режим

Когда бит SM = I, команда SLEEP переводит процессор в экономичный режим (Power Down Mode). В этом режиме останавливается генератор тактовых импульсов. Программист может разрешить работу сторожевого таймера в этом режиме. Если сторожевой таймер разрешен, процессор выходит из экономичного режима после отработки периода сторожевого таймера. Если сторожевой таймер запрещен, выход из экономичного режима может произойти только по внешнему сбросу или внешнему прерыванию по уровню.

2.6. Таймеры/счетчики

В AT90S2313 предусмотрены два таймера/счетчика общего назначения: 8-разрядный и 16-разрядный. Каждый из таймеров индивидуально подключается к одному из выходов 10-разрядного предварительного делителя частоты. Оба таймера могут использоваться как таймеры с внутренним источником импульсов или как счетчики импульсов, поступающих извне.

В качестве источника импульсов для таймеров можно выбрать сигнал тактовой частотой микроконтроллера (СК), импульсы предварительного делителя (СК/8, СК/64, СК/256 или СКУ1024) или импульсы с соответствующего внешнего вывода. На рис. 2.25 изображена структурная схема предварительного делителя частоты.

Кроме того, таймеры могут быть остановлены.

8-разрядный таймер/счетчик О

8-разрядный таймер/счетчик может хюлучать импульсы тактовой частоты - СК, импульсы с предварительного делителя (СК/8, СК/64, СК/256 или СК/1024), импульсы с внешнего вывода или быть остановлен соответствующими усгановками регистра TCCRO. Флаг переполнения таймера находится в регистре TIFR. Биты управления таймером расположены в регисфе TCCRO. Разрешение и запрещение прерываний от таймера управляется регистром TIMCK.

При работе таймера/счетчика от внешнего сигнала этот сигнал синхронизируется с тактовым генератором микроконтроллера. Для



Т1 -

КНяэряяный лрадварнтюный делитель

CS00 CS01 CS02


Тактовый ситап таймера/счетчика 1

Тактовый ситап таймера/счетчика О

Рис. 2.25. Предварительный делитель тактовой частоты для таймеров

Прерывани т/с О поперелол

ШI ill {

Регистр масок прерываний TIMSK

Регистр

флагов

Таймерчметчмс О <

Тактовый сигнал т/с О

Регистр управления T/cOTCCRO

ТТТП1

Управляющая логика

Рис. 2.26. Блок-схема таймера/счетчика О

-ск -то

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



процессора. Сигнал внешнего источника обрабатывается по спадающему фронту тактовой частоты процессора.

$33 ($53) 1

- 1

- 1

1 CS02

CS01

CSOO

ЧтУзаг.

Нач. знач.

Рис. 2.27. Регистр управления таймером/счетчиком О TCCRO

Биты 7...3 - в AT90S2313 зарезервированы и всегда читаются какО.

Биты 2, 1, О - CS02, CS01, CSOO - выбор тактовой частоты. Эти биты задают коэффициент деления предварительного делителя.

Таблица 2.5. Выбор коэффициента предварительного деления

CS02

CS01

CSOO

Описание

Таймер/счетчик остановлен

СК/8

СК/64

СК/256

СК/1024

Внешний вывод ТО, нарастающий фронт

Внешний вывод ТО, спадающий фронт

Условие «Таймер/счетчик остановлен» запрещает или разрешает функционирование таймера/счетчика. В режимах деления используется частота тактового генератора микроконтроллера. При работе от внешнего источника предварительно должен быть установлен соответствующий бит регистра направления данных.

Бит 7 6

$32 ($52) I MSB I

Чт./зап. FVW

Нач. знач. О

LSB I TCNTO

Рис. 2.28. Таймер/счетчик О TCNTO



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [ 12 ] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

0.0008