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

[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]

Таблица 2.2. Сброс и векторы прерываний

№ве1аора

Адрес

Источник

Наименование прерывания

$000

RESET

Аппаратный вывод Reset, сброс по включению питания и прерывание по сторожевому таймеру

$001

INTO

Внешнее прерывание 0

$002

INT1

Внешнее прерывание 1

$003

Timer 1 САРТ1

Захват таймера/счетчика 1

$004

Timer 1 C0MP1

Совпалние таймера/счетчика 1

$005

Timer 10VF1

Переполнение таймера/счетчика 1

$006

Timer OOVFO

Переполнение таймера/счетчика 0

$007

UART.RX

Прием с последовательного порта завершен

$008

UART, UDRE

Регистр данных последовательного порта пуст

$009

UART,TX

Передача с последовательного порта завершена

$00А

ANACOMP

Аналоговый компаратор

Источники сброса

AT90S2313 имеет три источника сброса (перезапуска микроконтроллера):

• сброс по включению питания. Процессор сбрасывается при подаче питания на выводы VCC и GND;

• внешний сброс. Процессор сбрасывается при подаче низкого уровня на вывод RESET на время более двух периодов тактовой частоты;

• сброс от сторожевого таймера. Процессор сбрасывается по окончании времени отработки сторожевого таймера, если разрешена его работа.

Во время сброса все регистры ввода/вывода устанавливаются в начальные значения, программа начинает выполняться с адреса $000, по этому адресу должна быть записана команда RJMP - относительный переход на программу обработки сброса. Если в программе не разрешаются прерывания и векторы прерываний не используются, программа может начинаться с нулевого адреса.



Сброс по сторожевому таймеру

После отработки заданного при его инициализации интервала времени сторожевой таймер вырабатывает импульс сброса, перезапуская при этом микроконтроллер.

2.4. Обработка прерываний

AT90S2313 имеет два регистра маски прерываний GIMCK - общий регистр маски прерываний и TIMCK - регис гр маски прерываний от таймера/счетчика.

Когда возникает прерывание, бит глобального разрешения прерываний I сбрасывается (ему присваивается значение 0) и все прерывания запрещаются. Программа пользователя может установить этот бит для разрешения прерываний. Флаг разрешения прерываний I ав-

Сброс по включении питания

Специальная схема, встроенная в микроконтроллер, - цепь сброса по включении питания, обеспечивает запрет включения процессора до тех пор, пока напряжение питания не достигнет безопасного уровня. После того как напряжение питания достигнет уровня включения, процессор не включается до тех пор, пока встроенный таймер не обработает несколько рабочих периодов сторожевого таймера.

Поскольку к выводу RESET подключен подтягивающий резистор, этот вывод может оставаться неподключенным, если не требуется внещний сброс. Время включения после подачи питания может быть увеличено удержанием вывода сброса на низком уровне.

Внешний сброс

Внешний сброс обрабатывается по низкому уровню на выводе RESET. Вывод должен удерживаться в низком состоянии, по крайней мере, два периода тактовой частоты. После снятия сигнала О с вывода Reset через некоторое время (так же как при сбросе по включению питания) микроконтроллер запускается.



тематически устанавливается в 1 при выполнении команды выхода из прерывания - RETI.

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

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

Бит 76543210

$ЗВ ($5В) I INT1 I INTO I - I - I - I - I - I - ~ GIMSK

Чт7зап. JVW JVW R R R R R R

Нач. знач. 00000000

Рис. 2.20. Общий регистр маски прерываний GIMGK

Бит 7 - INT1: запрос внешнего прерывания 1 разрешен. Когда этот бит установлен, а также установлен бит I, разрешается прерывание от внешнего вывода. Биты управления запуском прерывания (ISC11 и ISC10) в регистре управления микроконтроллером (MCUCR) определяют, по какому событию отрабатывается прерывание - по спадающему или нарастающему фронту или по уровню. Активность на выводе приводит к возникновению прерываний, даже если вывод сконфигурирован как выход. При возникновении прерывания выполняется переход по адресу $001 для выполнения подпрограммы обработки прерывания.

Бит 6 - INTO: запрос внешнего прерывания О разрешен. Когда этот бит установлен, а также установлен бит I, разрешается прерывание от внешнего вывода. Биты управления запуском прерыванкя (ISC01 и ISC00) в регистре управления микроконтроллером (MCUCR) определяют, по какому событию отрабатывается прерыва- ние - по спадающему или нарастающему фронту или по уровню. Активность на выводе приводит к возникновению прерываний, даже

если вывод сконфигурирован как выход. При возникновении преры-



[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.0011