![]() |
Главная Микроконтроллеры [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
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.001 |