Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Регистр управления коэффициентом деления частоты кварцевого генератора - XTAL Divide Control Register - XDIV

Регистр XDIV используется для установления коэффициента деления частоты кварцевого генератора в диапазоне от 1 до 129.

Биты
               

 

$3C ($5C)
XDIVEN XDIV6 XDIV5 XDIV4 XDIV3 XDIV2 XDIV1 XDIV0

 

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

 

 
Начальное состояние
               

 

 
  • Bit 7 - XDIVEN: XTAL Divide Enable - Разрешение деления частоты XTAL
    При установленном в 1 бите XDIVEN тактовая частота CPU и всей периферии делится в соответствии с установленным битами XDIV6 - XDIV0 коэффициентом деления. Такая возможность может быть использована для снижения потребления, при условии допустимости снижения вычислительной мощности. Этот бит может быть установлен и очищен в процессе выполнения программы тогда, когда это определяется применением.
  • Bits 6..0 - XDIV6..XDIV0: XTAL Divide Select Bits 6 - 0 - Биты выбора коэффициента деления
    Эти биты устанавливают коэффициент деления тактовой частоты при установленном бите XDIVEN. Если десятичное значение этих семи битов обозначить через d, то результирующая тактовая частота CPU будет определяться по формуле
f clk = XTAL
----------
(129-d)
  • Состояния этих битов можно изменить только когда бит XDIVEN сброшен (в состоянии 0). При установленном бите XDIVEN, записанное единовременно в биты XDIV6..XDIV0 значение будет определять коэффициент деления. При сбросе бита XDIVEN записанные в биты XDIV6..XDIV0 значения игнорируются. Поскольку делитель делит тактовую частоту поступающую на MCU, то и на периферийные устройства поступает тактовая частота с тем же коэффициентом деления.

Микроконтроллеры ATmega603/103 используют 23 источника прерывания. Эти прерывания и вектор сброса располагают отдельными программными векторами в пространстве памяти программ. Каждому прерыванию присвоен свой бит разрешения который должен быть установлен совместно с битом I регистра статуса.

Младшие адреса пространства памяти программ автоматически определяются как векторы сброса и прерываний.

Полный перечень векторов представлен в Таблице 5. Перечень представляет также уровень приоритета для каждого прерывания. Прерывания с младшими адресами имеют больший уровень приоритета. RESET имеет наивысший уровень приоритета, следующим является INT0 - Запрос внешнего прерывания 0 и т.д.

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

Vector No. Program Address Source Interrupt Definition
  $0000 RESET Сброс по выводу и сторожевому таймеру (Hardware Pin and Watchdog Reset)
  $0002 INT0 Запрос внешнего прерывания 0 (External Interrupt Request 0)
  $0004 INT1 Запрос внешнего прерывания 1 (External Interrupt Request 1)
  $0006 INT2 Запрос внешнего прерывания 2 (External Interrupt Request 2)
  $0008 INT3 Запрос внешнего прерывания 3 (External Interrupt Request 3)
  $000A INT4 Запрос внешнего прерывания 4 (External Interrupt Request 4)
  $000C INT5 Запрос внешнего прерывания 5 (External Interrupt Request 5)
  $000E INT6 Запрос внешнего прерывания 6 (External Interrupt Request 6)
  $0010 INT7 Запрос внешнего прерывания 7 (External Interrupt Request 7)
  $0012 TIMER2 COMP Совпадение при сравнении таймера/счетчика 2 (Timer/Counter2 Compare Match)
  $0014 TIMER2 OVF Переполнение таймера/счетчика 2 (Timer/Counter2 Overflow)
  $0016 TIMER1 CAPT Захват таймера/счетчика 1 (Timer/Counter1 Capture Event)
  $0018 TIMER1 COMPA Совпадение A при сравнении таймера/счетчика 1 (Timer/Counter1 Compare Match A)
  $001A TIMER1 COMPB Совпадение B при сравнении таймера/счетчика 1 (Timer/Counter1 Compare Match B)
  $001C TIMER1 OVF Переполнение таймера/счетчика 1 (Timer/Counter1 Overflow)
  $001E TIMER0 COMP Совпадение при сравнении таймера/счетчика 0 (Timer/Counter0 Compare Match)
  $0020 TIMER0 OVF Переполнение таймера/счетчика 0 (Timer/Counter0 Overflow)
  $0022 SPI, STC Завершение пересылки SPI (SPI Ser ial Transfer Complete)
  $0024 UART, RX Завершение приема UART (UART, Rx Complete)
  $0026 UART, UDRE Регистр данных UART пуст (UART Data Register Empty)
  $0028 UART, TX Завершение передачи UART (UART, Tx Complete)
  $002A ADC Завершение ADC преобразования (ADC Conversion Complete)
  $002C EE READY Готовность EEPROM (EEPROM Ready)
  $002E ANALOG COMP Срабатывание аналогового компаратора (Analog Comparator)

Наиболее часто используемые программные установки адресов векторов сброса и прерываний:

Адрес Метка Код Комментарий $0000 jmp RESET; Обработчик сброса (Reset Handler) $0002 jmp EXT_INT0; Обработчик прерывания IRQ0 (IRQ0Handler) $0004 jmp EXT_INT1; Обработчик прерывания IRQ1 (IRQ1 Handler) $0006 jmp EXT_INT2; Обработчик прерывания IRQ2 (IRQ2 Handler) $0008 jmp EXT_INT3; Обработчик прерывания IRQ3 (IRQ3 Handler) $000A jmp EXT_INT4; Обработчик прерывания IRQ4 (IRQ4 Handler) $000C jmp EXT_INT5; Обработчик прерывания IRQ5 (IRQ5 Handler) $000E jmp EXT_INT6; Обработчик прерывания IRQ6 (IRQ6 Handler) $0010 jmp EXT_INT7; Обработчик прерывания IRQ7 (IRQ7 Handler) $0012 jmp TIM2_COMP; Обработчик сравнения таймера 2 (Timer2 Compare Handler) $0014 jmp TIM2_OVF; Обработчик переполнения таймера 2 (Timer2 Overflow Handler) $0016 jmp TIM1_CAPT; Обработчик захвата таймера 1 (Timer1 Capture Handler) $0018 jmp TIM1_COMPA; Обработчик сравнения A таймера 1 (Timer1 CompareA Handler) $001A jmp TIM1_COMPB; Обработчик сравнения B таймера 1 (Timer1 CompareB Handler) $001C jmp TIM1_OVF; Обработчик переполнения таймера 1 (Timer1 Overflow Handler) $001E jmp TIM0_COMP; Обработчик сравнения таймера 0 (Timer0 Compare Handler) $0020 jmp TIM0_OVF; Обработчик переполнения таймера 0 (Timer0 Overflow Handler) $0022 jmp SPI_STC; Обработчик завершения пересылки SPI (SPI Transfer Complete Handler) $0024 jmp UART_RXC; Обработчик завершения приема UART (UART RX Complete Handler) $0026 jmp UART_DRE; Обработчик пустого регистра данных (UDR Empty Handler) $0028 jmp UART_TXC; Обработчик завершения передачи UART (UART TX Complete Handler) $002A jmp ADC; Обработчик завершения преобразования ADC (ADC Conversion Complete Handler) $002C jmp EE_RDY; Обработчик готовности EEPROM (EEPROM Ready Handler) $002E jmp ANA_COMP; Обработчик срабатывания аналогового компаратора(Analog Comparator Handler) ; $0030 MAIN: <instr> xxx; Начало основной программы (Main program start) ............



Поделиться с друзьями:


Дата добавления: 2015-06-30; Просмотров: 366; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.