F40-43a (1041604), страница 27
Текст из файла (страница 27)
Внешние прерыванияДва внешних источника прерываний (/INT0 и /INT1) настраиваются как входы с низким активнымуровнем, чувствительные к уровню или к фронту сигнала, в зависимости от состояния битов IT0 (TCON.0) иIT1 (TCON.2). Биты IE0 (TCON.1) и IE1 (TCON.3) служат флагами прерываний для внешних прерываний /INT0и /INT1 соответственно.
Если вход /INT0 или /INT1 настроен как чувствительный к фронту, тосоответствующий флаг прерывания автоматически сбрасывается аппаратными средствами при переходе кпроцедуре ISR. Если вход /INT0 или /INT1 настроен как чувствительный к уровню, то соответствующий флагпрерывания отслеживает (повторяет) состояние входного вывода внешнего прерывания. Внешний источникпрерывания должен удерживать на этом входе активный уровень до тех пор, пока запрос прерывания не будетраспознан. Затем необходимо деактивировать запрос прерывания до окончания выполнения процедуры ISR,иначе будет сгенерирован другой запрос прерывания.145Ред. 1.3C8051F040/1/2/3СбросФлаг прерыванияБитоваяадресация ?Аппаратныйсброс ?ВекторИсточник прерывания прерыванияПриоритетТаблица 12.4.
Источники прерыванийНетN/A N/A Разрешен всегдаБит разрешенияУправлениеприоритетом0x0000Наивысший0x00030IE0 (TCON.1)YYEX0 (IE.0)PX0 (IP.0)0x000B1TF0 (TCON.5)YYET0 (IE.1)PT0 (IP.1)0x00132IE1 (TCON.3)YYEX1 (IE.2)PX1 (IP.2)0x001B3TF1 (TCON.7)YYET1 (IE.3)PT1 (IP.3)YES0 (IE.4)PS0 (IP.4)YET2 (IE.5)PT2 (IP.5)YESPI0 (EIE1.0)PSPI0 (EIP1.0)YESMB0 (EIE1.1)EWADC0(EIE1.2)PSMB0 (EIP1.1)PWADC0(EIP1.2)EPCA0 (EIE1.3)PPCA0 (EIP1.3)CP0IE (EIE1.4)PCP0 (EIP1.4)CP1IE (EIE1.5)PCP1 (EIP1.5)CP2IE (EIE1.6)PCP2 (EIP1.6)ET3 (EIE2.0)PT3 (EIP2.0)EADC0 (EIE2.1)PADC0 (EIP2.1)ET4 (EIE2.2)EWADC2(EIE2.3)PT4 (EIP2.2)PWADC2(EIP2.3)EADC1 (EIE2.3)PADC1 (EIP2.3)ECAN0 (EIE2.5)PCAN0 (EIP2.5)ES1PS1Внешнее прерывание 0(/INT0)ПереполнениеТаймера 0Внешнее прерывание 1(/INT1)ПереполнениеТаймера 1Последовательныйпорт УАПП0Таймер 20x002340x002B5Модуль SPI0x00336Модуль SMBusДетектор диапазонаАЦП0Программируемыймассив счетчиков0x003B70x004380x004B9Компаратор 00x005310Компаратор 10x005B11Компаратор 20x006312Таймер 3Завершениепреобразования АЦП0Таймер 4Детектор диапазонаАЦП2Завершениепреобразования АЦП2Модуль CANПоследовательныйпорт УАПП10x0073140x007B150x0083160x0093170x008B180x009B190x00A320RI0 (SCON0.0)TI0 (SCON0.1)TF2 (T2CON.7)SPIF (SPI0CN.7)WCOL (SPI0CN.6)MODF (SPI0CN.5)RXOVRN(SPI0CN.7)SI (SMB0CN.3)ADWINT(ADC0CN.2)CF (PCA0CN.7)CCFn (PCA0CN.n)CP0FIF/CP0RIF(CPT0CN.4/.5)CP1FIF/CP1RIF(CPT1CN.4/.5)CP2FIF/CP2RIF(CPT2CN.4/.5)TF3 (TMR3CN.7)ADC0INT(ADC0CN.5)TF4 (T4CON.7)AD2WINT(ADC2CN.0)ADC2INT(ADC1CN.5)CAN0CN.7RI1 (SCON1.0)TI1 (SCON1.1)Ред.
1.3YYYYВсегданаивысший146C8051F040/1/2/312.3.3. Приоритеты прерыванийКаждому источнику прерываний можно программно присвоить один из двух уровней приоритета:низкий или высокий. Процедура ISR с низким приоритетом может быть прервана прерыванием с высокимприоритетом. Прерывание с высоким приоритетом не может быть прервано. Каждое прерывание имеетсвязанный с ним бит приоритета в регистрах SFR (IP-EIP2), используемый для настройки уровня приоритета.По умолчанию присваивается низкий приоритет.
Если два прерывания происходят одновременно, прерывание сболее высоким приоритетом обслуживается первым. Если оба прерывания имеют одинаковый приоритет, дляарбитража используется фиксированный уровень приоритета, приведенный в табл.12.4.12.3.4. Задержка обработки прерыванияВремя реакции на прерывание зависит от состояния процессорного ядра в момент возникновенияпрерывания.
Опрос флага прерывания и декодирование приоритета осуществляется каждый системныйтактовый цикл. Поэтому, наименее возможное время реакции на прерывание составляет 5 тактовых циклов: 1цикл для определения прерывания и 4 цикла для выполнения команды LCALL перехода к процедуре ISR. Еслив момент выполнения команды RETI появляется прерывание, то до выполнения команды LCALL перехода напроцедуру обслуживания этого прерывания будет исполнена одна команда основной программы.
Поэтомумаксимальное время реакции на прерывание (если в настоящий момент не обслуживается другое прерываниеили если новое прерывание имеет более высокий приоритет) будет тогда, когда выполняется команда RETI, аследом за ней должна выполняться команда DIV. В этом случае время реакции составляет 18 тактовых циклов:1 цикл для определения прерывания, 5 циклов для выполнения команды RETI, 8 циклов для выполнениякоманды DIV и 4 цикла для выполнения команды LCALL перехода на процедуру ISR. Если выполняетсяпроцедура ISR для прерывания с равным или более высоким приоритетом, новое прерывание не будетобслужено до тех пор, пока не завершится текущая процедура ISR, включая команду RETI и следующуюкоманду.147Ред.
1.3C8051F040/1/2/312.3.5. Описания регистров прерыванийРегистры SFR, используемые для разрешения/запрещения источников прерываний и установки ихприоритетов, описаны ниже. Подробная информация относительно условий возникновения прерываний отпериферийных модулей и поведения их флагов прерываний приведена в разделах данного руководства,посвященных работе соответствующих периферийных модулей.Рисунок 12.9. IE: Регистр разрешения прерыванийR/WEAБит 7R/WIEGF0R/WET2R/WES0R/WET1R/WEX1R/WET0R/WEX0Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0(доступен в битовомрежиме адресации)Значениепри сбросе:00000000SFR Адрес: 0xA8SFR страница: ВсеБит 7: EA: Бит разрешения всех прерываний.Это бит глобально разрешает/запрещает все прерывания. Будучи сброшенным в 0, он перекрываетиндивидуальные маски прерываний0: Все источники прерываний запрещены.1: Каждое прерывание разрешено/запрещено в соответствии с его индивидуальной маской.Бит 6: IEGF0: Флаг общего назначения 0.Это флаг общего назначения, предназначенный для использования под управлением программы.Бит 5: ET2: Бит разрешения прерывания от Таймера 2.Этот бит устанавливает маскирование прерывания от Таймера 2.0: Все прерывания от Таймера 2 запрещены.1: Разрешены запросы прерываний, генерируемые при установке флага TF2 (T2CON.7)Бит 4: ES0: Бит разрешения прерываний от последовательного порта УАПП0.Этот бит устанавливает маскирование прерывания от последовательного порта УАПП0.0: Прерывания от УАПП0 запрещены.1: Прерывания от УАПП0 разрешены.Бит 3: ET1: Бит разрешения прерывания от Таймера 1.Этот бит устанавливает маскирование прерывания от Таймера 1.0: Все прерывания от Таймера 1 запрещены.1: Разрешены запросы прерываний, генерируемые при установке флага TF1 (TCON.7).Бит 2: EX1: Бит разрешения внешнего прерывания 1.Этот бит устанавливает маскирование внешнего прерывания 1.0: Внешнее прерывание 1 запрещено.1: Разрешены запросы прерываний, генерируемые сигналом на выводе /INT1.Бит 1: ET0: Бит разрешения прерывания от Таймера 0.Этот бит устанавливает маскирование прерывания от Таймера 0.0: Все прерывания от Таймера 0 запрещены.1: Разрешены запросы прерываний, генерируемые при установке флага TF0 (TCON.5).Бит 0: EX0: Бит разрешения внешнего прерывания 0.Этот бит устанавливает маскирование внешнего прерывания 0.0: Внешнее прерывание 0 запрещено.1: Разрешены запросы прерываний, генерируемые сигналом на выводе /INT0.Ред.
1.3148C8051F040/1/2/3Рисунок 12.20. IP: Регистр приоритетов прерыванийR/WБит 7R/W-R/WPT2R/WPS0R/WPT1R/WPX1R/WPT0R/WPX0Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0(доступен в битовомрежиме адресации)Биты 7-6: Не используются. Читаются как 11b.Бит 5: PT2: Управление приоритетом прерывания от Таймера 2.Этот бит устанавливает приоритет прерываний от Таймера 2.0: Приоритет прерывания от Таймера 2 определяется уровнем приоритета по умолчанию.1: Прерываниям от Таймера 2 назначается высокий уровень приоритета.Бит 4: PS0: Управление приоритетом прерывания от последовательного порта УАПП0.Этот бит устанавливает приоритет прерываний от последовательного порта УАПП0.0: Приоритет прерывания от УАПП0 определяется уровнем приоритета по умолчанию.1: Прерываниям от УАПП0 назначается высокий уровень приоритета.Бит 3: PT1: Управление приоритетом прерывания от Таймера 1.Этот бит устанавливает приоритет прерываний от Таймера 1.0: Приоритет прерывания от Таймера 1 определяется уровнем приоритета по умолчанию.1: Прерываниям от Таймера 1 назначается высокий уровень приоритета.Бит 2: PX1: Управление приоритетом внешнего прерывания 1.Этот бит устанавливает приоритет внешнего прерывания 1.0: Приоритет внешнего прерывания 1 определяется уровнем приоритета по умолчанию.1: Внешнему прерыванию 1 назначается высокий уровень приоритета.Бит 1: PT0: Управление приоритетом прерывания от Таймера 0.Этот бит устанавливает приоритет прерываний от Таймера 0.0: Приоритет прерывания от Таймера 0 определяется уровнем приоритета по умолчанию.1: Прерываниям от Таймера 0 назначается высокий уровень приоритета.Бит 0: PX0: Управление приоритетом внешнего прерывания 0.Этот бит устанавливает приоритет внешнего прерывания 0.0: Приоритет внешнего прерывания 0 определяется уровнем приоритета по умолчанию.1: Внешнему прерыванию 0 назначается высокий уровень приоритета.149Ред.
1.3Значениепри сбросе:11000000SFR Адрес: 0xB8SFR страница: ВсеC8051F040/1/2/3Рисунок 12.21. EIE1: Дополнительный регистр разрешения прерываний 1R/WБит 7R/WCP2IER/WCP1IER/WCP0IER/WEPCA0R/WEWADC0R/WESMB0R/WESPI0Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000SFR Адрес: 0xE6SFR страница: ВсеБит 7: Зарезервирован. Читается как 0b.Бит 6: CP2IE: Бит разрешения прерываний от Компаратора 2 (СР2).Этот бит устанавливает маскирование прерывания от СР2.0: Прерывания от СР2 запрещены.1: Разрешены запросы прерываний, генерируемые при установке флага CP2IF.Бит 5: CP1IE: Бит разрешения прерываний от Компаратора 1 (СР1).Этот бит устанавливает маскирование прерывания от СР1.0: Прерывания от СР1 запрещены.1: Разрешены запросы прерываний, генерируемые при установке флага CP1IF.Бит 4: CP0IE: Бит разрешения прерываний от Компаратора 0 (СР0).Этот бит устанавливает маскирование прерывания от СР0.0: Прерывания от СР0 запрещены.1: Разрешены запросы прерываний, генерируемые при установке флага CP0IF.Бит 3: EPCA0: Бит разрешения прерываний от программируемого массива счетчиков (PCA0).Этот бит устанавливает маскирование прерывания от PCA0.0: Все прерывания от PCA0 запрещены.1: Разрешены запросы прерываний, генерируемые PCA0.Бит 2: EWADC0: Бит разрешения прерываний от детектора диапазона АЦП0.Этот бит устанавливает маскирование прерывания от детектора диапазона АЦП0.0: Прерывание от детектора диапазона АЦП0 запрещено.1: Разрешены запросы прерываний, генерируемые детектором диапазона АЦП0.Бит 1: ESMB0: Бит разрешения прерываний от модуля SMBus.Этот бит устанавливает маскирование прерывания от модуля SMBus.0: Все прерывания от модуля SMBus запрещены.1: Разрешены запросы прерываний, генерируемые при установке флага SI.Бит 0: ESPI0: Бит разрешения прерываний от модуля SPI0.Этот бит устанавливает маскирование прерывания от модуля SPI0.0: Все прерывания от модуля SPI0 запрещены.1: Разрешены запросы прерываний, генерируемые при установке флага SPI0.Ред.