RTC8564ライブラリ

icon 項目のみ表示/展開表示の切り替え

概要

I2Cで接続できるRTC8564(EPSONのページに移動します)向けのライブラリである。
液晶モジュールと接続するポートはマクロで変更可能である。
初期化、時刻の読み出し、時刻の書き込み、バックアップ状況の取得等をサポートしている。
使用する場合はrtc.incをインクルードしrtc.asmをプロジェクトに追加してください
ライブラリを使用する前にPICのI2Cモジュールの初期化をしてください。

プログラムの説明

ソースファイル

以下のファイルで構成されている
rtc.asm   ・・・ RTC8564ライブラリ Version 1.00
rtc.inc   ・・・ RTC8564ライブラリ Version 1.00

サブルーチン

以下のサブルーチンをサポート

rtc_start

時刻のカウントを開始する

rtc_stop

時刻のカウントを停止

rtc_vl_chk

バックアップ中に電圧停止があったかを取得する。戻り値が0以外の場合は初期化が必要である。

ソースコード

rtc.inc

; I2Cサポートライブラリ  Version 1.00
; File:        i2c.inc
; Target:      PIC18F14K50 48Mhz
; アセンブラ:   Microchip MPASM(v5.51)
; 書き込み:     PICKit 3
; リリース:     2013/10/01 21:00

        EXTERN i2c_start,i2c_stop,i2c_restart,i2c_read,i2c_last_read,i2c_write
        EXTERN i2c_block_write,i2c_block_read

rtc.asm

; RTC-8564ライブラリー  Version 1.00
; File:        rtc.asm
; Target:      PIC18F14K50 48Mhz
; アセンブラ:   Microchip MPASM(v5.51)
; 書き込み:     PICKit 3
; リリース:     2013/10/01 21:00

        #DEFINE  RTC_ASM 1

        #INCLUDE <p18f14k50.inc>
        #INCLUDE "i2c.inc"
        #INCLUDE "rtc.inc"

        EXTERN  ARG1
        GLOBAL  rtc_start,rtc_stop,rtc_vl_chk
        CODE

rtc_start   ;   時刻のカウントを開始する
        rcall   i2c_start   ;   スタートコンディションを出力
        movlw   RTC8564_SADS
        rcall   i2c_write
        movlw   RTC_CTL1
        rcall   i2c_write
        movlw   b'00000000' ;  RTCの時計をカウント開始
        rcall   i2c_write
        rcall   i2c_stop    ;   ストップコンディションを出力
        return

rtc_stop   ;   時刻のカウントを停止する
        rcall   i2c_start   ;   スタートコンディションを出力
        movlw   RTC8564_SADS
        rcall   i2c_write
        movlw   RTC_CTL1
        rcall   i2c_write
        movlw   b'00100000' ;  RTCの時計をカウント中止
        rcall   i2c_write
        rcall   i2c_stop    ;   ストップコンディションを出力
        return

rtc_vl_chk      ;   電圧低下検出ビットを読み出す
        rcall   i2c_start   ;   スタートコンディションを出力
        movlw   RTC8564_SADS
        rcall   i2c_write

        movlw   RTC_SEC
        rcall   i2c_write

        rcall   i2c_restart

        movlw   RTC8564_SADS+1  ; 読み込みモード
        rcall   i2c_write

        rcall   i2c_last_read

        movwf   ARG1

        rcall   i2c_stop    ;   ストップコンディションを出力
        return


        END