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


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

быть переработана для использования в любом микроконтроллере семейства MSP430.

Для хранения информации о часах, минутах и секундах используются три регистра.

#include <msp430xllxl.h> ; включить файл заголовков

; определения переменных RTC
#define SEC R13

#define MIN Rl 4

#define HR R15

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

f

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

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

; таймера

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

; для режима LPM3

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

JMP Mainloop ; окончание основной

; программы

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

Автор Lutz Bierl.

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

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

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

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

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

быть рассчитаны

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


Глава 2.


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


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

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


Clock SETC
DADC.b SEC

CMP.b #060h,SEC
JLO Clockend

CLR. b SEC

DADC.b MIN

CMP.b #060h,MIN
JLO Clockend

CLR. b MIN

DADC.b HR

CMP.b #024h,HR
JLO Clockend

CLR.b HR

Clockend RET ;


Установка бита

переноса

увеличение

десятичного значения секунд

Прошла одна минута?

Нет, возврат

Да, очистка секунд

Увеличение десятичного

значения минут

Прошло 60 минут?

Нет, возврат

Да, очистка минут

Увеличение десятичного

значения часов

Прошло 24 часа?

Нет, возврат

Да, очистка часов


 
 

Setup MOV setupTA

; Setup: Настойка модулей и управляющих регистров

#WDTPW+WDTHOLD,&WDTCTL

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

MOV

#TASSELO+TACLR,&TACTL ; ACLK -

BIS #CCIE,&CCTLO MOV #0IFFFh , &CCR 0 BIS #MCO, &TACTL ClearRTC MOV.b #OOh,SEC

; источник для ; Timer_A. Pa зрешение прерывания от CCRO. загрузка в CCRO значения 32,767. запуск ТА в режиме "up to CCRO" Очистка переменной

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


f& Texas