山本ワールド
RTC8564ライブラリ
概要
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
Copyright (C) 2012 山本ワールド All Rights Reserved.