Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Код прикладной программы часов реального времени приведен в двух вариантах в приложении А. В каждом примере есть подпрограмма инициации, основная ветвь, подпрограмма расчета временных показателей (часов, минут и секунд) и подпрограмма обработки прерывания, отслеживающая 1-секундные прерывания от таймера.
Подпрограмма инициации производит настройку модулей MSP430. Модуль таймера настраивается на непрерывный счет от 0 до 32767 и формирование прерывания при переполнении. Также подпрограмма производит установку необходимых параметров основного модуля синхронизации.
Основная ветвь - программа, выполняемая каждый раз после формирования прерывания, и инициализирующая режим сна микроконтроллера. Даже тогда, когда вычислительное ядро переходит в режим ожидания, таймер все равно продолжает работать.
Подпрограмма обслуживания прерывания (interrupt service routine - ISR) таймера обрабатывает биты регистра состояния (status register- SR), которые записываются в стек до выполнения подпрограммы обслуживания прерывания. Это позволяет вычислительному ядру находиться в активном режиме, а не в режиме сна, по выходу из подпрограммы обслуживания прерывания.
Подпрограмма расчета временных параметров выполняется каждый раз после 1-секундного прерывания таймера. Она пересчитывает значения секунд, минут и часов в двоично-десятичной форме. В описании встроенных периферийных модулей микроконтроллеров семейства MSP430 можно найти более сложную подпрограмму, которая высчитывает и значения дней, месяцев и лет (учитывая и високосные годы).
Дата публикования: 2014-11-18; Прочитано: 280 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!