Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[24]

Vcc

RESET

Задержка сторожевого таймера

Задержка сброса

Внутренний сброс

1 XTAL Cycle

TOUT

Рис. 29 Сброс по сторожевому таймеру во время работы микроконтроллера

РЕГИСТР СТАТУСА MCU - MCUSR - (MCU Status Register)

Регистр статуса MCU выдает информацию об источнике, вызвавшем сброс MCU.

Бит

$34($54)[

Чтение/Запись Начальное значение

76543210

- - - - - I - I extrf PORF~l MCUSR

RRRRRRR/W R/W

000000см. описание битов

•Bits 7..2 - Res: Reserved Bits - Зарезервированные биты

Эти биты зарезервированы и при считывании всегда покажут состояние 0.

•Bit 1 - EXTRF: External Reset Flag - Флаг внешнего сброса

После подачи напряжения питания состояние этого бита неопределенно (X). Бит устанавливается в состояние 1 внешним сбросом. Сброс по сторожевому таймеру оставляет этот бит неизменным.

•Bit 0 - PORF: Power On Reset Flag - Флаг включения питания

Данный бит устанавливается сбросом по подаче питания. Сброс по сторожевому таймеру или по внешнему сбросу оставляют этот бит неизменным.

В таблице показано влияние трех режимов сброса на состояния битов PORF и EXTRF.

Таблица 7 Состояния PORF и EXTRF битов после сброса

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

PORF

EXTRF

Сброс по подаче питания

1

Неопределенное состояние

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

Не меняется

1

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

Не меняется

Не меняется

Для определения режима сброса, на основании состояния данных битов PORF и EXTRF, пользовательское программное обеспечение должно сбрасывать биты PORF и EXTRF как только это позволит программа. Прежде, чем их очистить необходимо провести проверку этих битов. Если бит был очищен до внешнего сброса или сброса по сторожевому таймеру, то источник сброса может быть определен по следующей таблице истинности:


Таблица 8 Определение источника сброса

PORF

EXTRF

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

0

0

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

0

1

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

1

0

Сброс по подаче питания

1

1

Сброс по подаче питания

ОБРАБОТКА ПРЕРЫВАНИЙ

Микроконтроллеры ATmega603/103 содержат два специальных 8-разрядных регистра масок прерываний: регистр масок внешних прерываний EIMSK (External Interrupt Mask) и регистр масок прерываний по таймеру/счетчику TIMSK (Timer/Counter Interrupt Mask). Кроме того, в регистрах управления периферией могут быть организованы и другие биты разрешения и биты масок.

При возникновении прерывания бит I разрешения глобального прерывания (Global Interrupt Enable) очищается и все прочие прерывания запрещаются. Пользовательское ПО, с тем, чтобы разрешить вложенные прерывания, может установить бит I внутри подпрограммы обработки прерывания. Выход из подпрограммы обработки прерывания происходит по команде RETI, при этом бит I устанавливается в состояние 1. Когда счетчик команд указывает вектор подпрограммы обработки прерывания, соответствующий флаг, вызвавший прерывание, аппаратно очищается. Некоторые флаги прерываний можно очистить, записав в соответствующий бит(ы) очищаемого флага логическую единицу.

РЕГИСТР МАСОК ВНЕШНИХ ПРЕРЫВАНИЙ -EIMSK - (External Interrupt Mask Register)

Бит7 6 5 4 3 2 10

$39 ($59)IINT7 I INT6 INT5 INT4 INT3 INT2 INT1 INT0~ EIMSK

Чтение/Запись R/WR/W R/W R/W R/W R/W R/W R/W R/W

Начальное значение00000000

•Bits 7..4 - INT7 - INT4: External Interrupt Request 7-4 Enable - Разрешение запроса внешних прерываний с 4 по 7

При установленных битах INT7- INT4 и установленном бите I регистра статуса (SREG) разрешаются прерывания по соответствующим выводам входов сигналов прерываний. Бит управления опознаванием прерывания регистра управления внешними прерываниями EICR (External Interrupt Control Register) определяет срабатывание по нарастающему или падающему фронту или по логическому уровню. Активация любого из этих выводов вызовет запрос прерывания даже если вывод будет разрешен как выход. Это обеспечивает возможность организации программного прерывания.

•Bits 3..0 - INT3 - INTO: External Interrupt Request 3-0 Enable - Разрешение запроса внешних прерываний с 0 по 3

При установленных битах INT3- INT0 и установленном бите I регистра статуса (SREG) разрешаются прерывания по соответствующим входам прерываний. Внешние прерывания всегда вызывают прерывание низким уровнем. Активация любого из этих выводов вызовет запрос прерывания даже если вывод будет разрешен как выход. Это обеспечивает возможность организации программного прерывания. Запрос прерывания


Таблица 9 Управление опознаванием прерывания

ISCX1

ISCX0

Описание

0

0

Запрос прерывания генерируется низким уровнем на INTX.

0

1

Зарезервирован

1

0

Запрос прерывания генерируется падающим фронтом на INTX.

1

1

Запрос прерывания генерируется нарастающим фронтом на INTX.

Примечание: X может быть равен 7, 6, 5 или 4.

При изменении битов ISC11/ISC10 прерывание должно быть запрещено путем очистки бита разрешения в регистре GIMSK. В ином случае может произойти прерывание. Запрос прерывания по логическому уровню, если он разрешен, будет генерировать запрос прерывания до тех пор, пока на входе будет находиться низкий уровень. - 83

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

РЕГИСТР ФЛАГОВ ВНЕШНИХ ПРЕРЫВАНИЙ -EIFR (External Interrupt Flag Register)

Бит76543210

$38 ($58)I INTF7 I INTF6 INTF5 INTF4 - - - - EIFR

Чтение/Запись R/W R/W R/W R/W R R R R

Начальное значение 00000000

•Bits 7..4 - INTF7 - INTF4: External Interrupt 7-4 Flags - Флаги внешних прерываний с 4 по 7

В случае поступления запроса на прерывание на какой либо из выводов INT7 - INT4, будет установлен в 1 соответствующий флаг прерывания (INTF7 - INTF4). Если бит I регистра SREG и соответствующий бит разрешения (INT7 - INT4) в EIMSK будут установлены, то MCU перейдет к вектору прерывания. По завершению подпрограммы прерывания флаг очищается. Кроме того, его можно очистить, записав в него логическую 1.

•Bits 3..0 - Res: Reserved Bits - Зарезервированные биты

Эти биты зарезервированы и при считывании всегда покажут состояние 0.

РЕГИСТР УПРАВЛЕНИЯ ВНЕШНИМИ ПРЕРЫВАНИЯМИ -EICR (External Interrupt Control Register)

Бит76543210

$3A ($5A)I ISC71 I ISC70 ISC61 ISC60 ISC51 ISC50 ISC41 ISC40 EICR

Чтение/Запись R/W R/W R/W R/W R/W R/W R/W R/W

Начальное значение 00000000

•Bits 7..0 - ISCX1, ISCX0: External Interrupt 7-4 Sense Control bits - Биты управления опознаванием внешних прерываний с 4 по 7

Внешние прерывания 7 - 4 активируются по выводам INT7 - INT4, если установлен флаг I в SREG и установлена соответствующая маска в EIMSK. Запрос прерывания по логическому уровню или фронтам определяется в следующей таблице:



[стр.Начало] [стр.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]