rtc.h

来自「attendace system on 8051 chipset from in」· C头文件 代码 · 共 71 行

H
71
字号
/**********************************JBB**************************************/

#ifndef _RTC_H
#define _RTC_H

#include "i2c\i2c.h"

/*F16 Old Card*/
/*
#define RTC LOW
*/

/*F16 New Card*/

#define RTC HIGH

#define SEC_ADDRESS  0x02
#define MIN_ADDRESS  0x03
#define HOUR_ADDRESS 0x04

#define DAY_ADDRESS  0x05
#define MON_ADDRESS  0x06
#define YEAR_ADDRESS 0x07

#define CONTROL_REGISTER_ADDRESS 0x00
#define FREE_RAM_BASE_ADDRESS    0x10

#define rtcputc(location,value) i2cputc(RTC,location,value)

#define rtcgetc(location)i2cgetc(RTC,location)

/*
char rtchextoint(char rtc_hex_value)
{
        if(rtc_hex_value > 0x09)
        {
                rtc_hex_value = rtc_hex_value - (((rtc_hex_value & 0xF0) >> 4) * 6);
        }

        return rtc_hex_value;
}

char rtcinttohex(char rtc_int_value)
{
        if(rtc_int_value > 0x09)
        {
                rtc_int_value = rtc_int_value + (rtc_int_value / 10) * 6;
        }

        return rtc_int_value;
}
*/

#define INIT_RTC() rtcputc(CONTROL_REGISTER_ADDRESS,0X00);

#define GET_DAY()      (rtcgetc(DAY_ADDRESS) & 0x3F)
#define GET_MON()      (rtcgetc(MON_ADDRESS) & 0x1F)

#define GET_MIN()      rtcgetc(MIN_ADDRESS)
#define GET_HOUR()     rtcgetc(HOUR_ADDRESS) & 0x3F
#define GET_SEC()      rtcgetc(SEC_ADDRESS)

#define SET_DAY(DAY)   rtcputc(DAY_ADDRESS,DAY)
#define SET_MON(MON)   rtcputc(MON_ADDRESS,MON)

#define SET_MIN(MIN)   rtcputc(MIN_ADDRESS,MIN)
#define SET_HOUR(HOUR) rtcputc(HOUR_ADDRESS,(HOUR & 0x3F))
#define SET_SEC(SEC)   rtcputc(SEC_ADDRESS,SEC)

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?