Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Библиотека Компэла 93




Ь //- Использование внутренних функций, периферийных блоков...

#define MIN R14

#define HR R15

Программа RESET RSEG CODE

RESET MOV #02FEh,SP; Инициализация указателя

; стека
CALL #Setup; Подготовка ЖКИ и основного

; таймера

; Основная программа
Mainloop BIS #LPM3,SR; Установка битов SR

; для режима LPM3

CALL #Clock; обновление состояния часов

JMP Mainloop; окончание основной программы

Clock: обновление состояния переменных секунд, минут и часов (SEC, MIN и HR)

Автор: Lutz Bierl.

Эта подпрограмма, которая считает количество часов, минут и секунд.

Она может использоваться с любым периферийным счетчиком любого микроконтроллера семейства MSP430, имеющим период переполнения 1 сек.

Эта подпрограмма весьма специфическая.

Она рассчитывает секунды, минуты и часы только

в двоично-десятичном коде. При необходимости могут

быть рассчитаны значения и в шестнадцатеричном коде.

Среди примеров применения MSP430 имеются описания реализации часов реального времени, которые также рассчитывают и год с учетом коррекции високосного года.

Clock SETC; установка бита переноса

DADC.b SEC; увеличение десятичного значения

; секунд

СМР.Ъ #060h,SEC; окончилась минута?

94 Библиотека Компэла


Глава 2.

Реализация часов реального времени на MSP430

JLO Clockend нет, возврат
CLR.b SEC • Да, очистка секунд
DADC.b MIN • увеличение десятичного
    • значения минут
CMP.b #060h, MIN • прошло 60 минут?
JLO Clockend • Нет, возврат
CLR.b MIN • Да, очистка минут
DADC.b HR увеличение десятичного
    значения часов
CMP.b #024h, HR • прошло 24 часа?
JLO Clockend Нет, возврат
CLR.b HR Да, очистка часов
Clockend RET  
; Setup: Настройка модулей и управляющих регистров

Setup BIS.b #BITO,&IE1

MOV

Разрешение прерывания от сторожевого таймера #WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL,&WDTCTL

Остановка сторожевого

таймера

Установка интервала

режима таймера и установка

интервала прерывания

1 секунда с ACLK.

ClearRTC MOV'.b #OOh,SEC MOV.b #0Oh,MIN MOV.b #OOh,HR EINT RET

Очистка секунд (SEC) Очистка минут (MIN) Очистка часов (HR) Разрешение прерываний установки выполнены

Подпрограмма обработки прерывания от сторожевого

таймера:

ЦП просто переходит в активное состояние в RETI

путем манипулирования битами SR в переменной SR,

которая помещена в стек.

Флаг прерывания очищается автоматически


WDINT BIC RETI;


#LPM3,0(SP)


Очистка SR LPM3 битов в верхней части стека


Библиотека Компэла


f& Texas





Дата публикования: 2014-11-18; Прочитано: 332 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...