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

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

Если внешние прерывания разрешены и сконфигурированы на oxps ботку по уровню, прерывание будет вырабатываться до тех пор, пои вывод удерживается в низком состоянии. . • - •

Управление работой внешних прерываний рассмотрено при oni сании регистра управления процессором MCUCR.

Время реакции на прерывание

Минимальное время реакции на любое из предусмотренных процессоре, прерываний - 4 периода тактовой частоты. После 4 ци лов вызывается программный вектор, обрабатываюхЦий данное пр< рывание. За эти 4 цикла программный счетчик записывается в ста указатель стека уменьшается на 2. Программный вектор представля ет собой относительный переход на подпрограмму обслуживани прерывания, и этот переход занимает 2 периода тактовой частоть Если прерывание происходит во время выполнения команды, д.т щейся несколько циклов, перед вызовом прерывания завершаете выполнение этой команды.

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

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

Бит 76543210

J35($55) I - I - I SE I SM I ISC11 1SC10 ISC01 ISCOO MCUCR

Чт./зап. R R R/W R/W R/W R/W R/W R/W

Нач. знач. 00000000

Рис. 2.24. Регистр управления микроконтроллером MCUCR

Биты 7,6 - в AT90S2313 эти биты зарезервированы и всегда читя ются как 0. т

Бит 5 - SE: разрешение режима Sleep. Этот бит должен быть установлен в 1, чтобы при выполнении команды SLEEP процессор



переходил в режим пониженного энергопотребления. Этот бит должен быть установлен в 1 до исполнения команды SLEEP.

Бит 4 - SM: режим Sleep. Этот бит выбирает один из двух режимов пониженного энергопотребления. Если бит сброшен, в качестве режима Sleep выбирается холостой режим (Idle mode). Если бит установлен - выбирается экономичный режим (Power Down). Особенности каждого из режимов будут рассмотрены ниже.

Биты 3, 2 - ISC11, ISC10: биты управления срабатыванием прерывания 1. Внешнее прерывание активируется выводом INT1, если установлен флаг I регистра состояния SREG и установлена соответствующая маска в регистре GIMCK. Срабатывание по уровню и фронтам задается следующим образом:

Таблица 2.3. Управление срабатыванием прерывания 1

ISC11

ISC10

Описание

Запрос на прерывание генерируется по низкому уровню на входе INT1

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

Запрос на прерывание по спадающему фронту на входе INT1

Запрос на прерывание по нарастающему фронту на входе INT1

, Примечание. При изменении битов ISC11/ISC10 прерывание INT1 должно быть запрещено очисткой соответствующего бита в регистре 61Л4СК. В противном случае прерывание может возникнуть во время изменения битов.

Таблица 2.4. Управление срабатыванием прерывания 0

ISC01

ISCOO

Описание

Запрос на прерывание генерируется по низкому уровню на входе INTO

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

Запрос на прерывание по спадающему фронту на входе INTO

Запрос на прерывание по нарастающему фронту на входе INTO

Примечание. При изменении б»пов ISCX)1 и ISCOO, прерывания по входу INTO должны быть запрещены сбросом бита разрешения прерывания в регжтре GIMCK. В противном случае прерывание может произойти при изменении значения битое.



2.5. Режимы пониженного энергопотребления

Для запуска режима пониженного энергопотребления долже! быть установлен в состояние 1 бит SE регистра MCUCR и должш быть выполнена команда SLEEP. Если во время нахождения в реж! ме пониженного потребления происходит одно из разрешенных пр( рываний, процессор начинает работать, исполняет подпрограмму о( работки прерывания и продолжает выполнение программы с кома! ды, следующей за SLEEP. Содержимое регистрового файла и памят ввода/вывода не изменяется. Если в режиме пониженного потребл( ния происходит сброс, процессор начинает выполнение программы., вектора сброса.

Если для вывода из экономичного режима используется прерыва ние по уровню, низкий уровень должен удерживаться на время, д статочное для запуска генератора тактовых импульсов, - не меш 16 мс. Иначе флаг прерывания может вернуться в О до того, как пр цессор начнет работу.

Режим холостого хода

Когда бит SM сброшен, команда SLEEP переводит процессор 1 режим холостого хода (Idle mode). ЦПУ останавливается, но тайме ры/счетчики, сторожевой таймер и система прерываний продолжаю" работать. Это позволяет процессору возобновлять работу как о" внешних прерываний, так и по переполнению таймеров/счетчико! или по сбросу от сторожевого таймера. Если прерывание от аналого вого компаратора не требуется, аналоговый компаратор может быт1 отключен установкой бита ACD регистра ACSR. Это уменьшает по требляемую мощность.

Биты 1, О - ISC01, ISCOO: биты управления срабатывание прерывания 0. Внешнее прерывание активируется выводом [NTO, е< ли установлен флаг 1 регистра состояния SREG и установлена соо ветсгвующая маска в регистре GIMCK. В табл. 2.4 приведена yen новка битов для задания срабатывания по уровню и фронтам.



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