⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtc.h

📁 rs485的通信程序的主程序。采用at91sam7a3芯片编写的。
💻 H
字号:
/***********************************************************************/
/*  This file is part of the uVision/ARM development tools             */
/*  Copyright KEIL ELEKTRONIK GmbH 2002-2003                           */
/***********************************************************************/
/*                                                                     */
/*  RTC.H:  Header file for Real Time Clock                            */
/*                                                                     */
/***********************************************************************/

#ifndef __RTC_H
#define __RTC_H


/*---------------*/
/* RTC Registers */
/*---------------*/
#define RTC_MR     REG(RTC_BASE + 0x00)    /* Mode Register */
#define RTC_HMR    REG(RTC_BASE + 0x04)    /* Hour Mode Register */
#define RTC_TIMR   REG(RTC_BASE + 0x08)    /* Time Register */
#define RTC_CALR   REG(RTC_BASE + 0x0C)    /* Calendar Register */
#define RTC_TAR    REG(RTC_BASE + 0x10)    /* Time Alarm Register */
#define RTC_CAR    REG(RTC_BASE + 0x14)    /* Calendar Alarm Register */
#define RTC_SR     REG(RTC_BASE + 0x18)    /* Status Register */
#define RTC_SCR    REG(RTC_BASE + 0x1C)    /* Status Clear Register */
#define RTC_IER    REG(RTC_BASE + 0x20)    /* Interrupt Enable Register */
#define RTC_IDR    REG(RTC_BASE + 0x24)    /* Interrupt Disable Register */
#define RTC_IMR    REG(RTC_BASE + 0x28)    /* Interrupt Mask Register */
#define RTC_VER    REG(RTC_BASE + 0x2C)    /* Valid Entry Register */


/*-------------------------*/
/* RTC_MR: Mode Register   */
/*-------------------------*/
#define RTC_UPDTIM             (1<<0)      /* Update Request Time Register */
#define RTC_UPDCAL             (1<<1)      /* Update Request Calendar Register */

#define RTC_TEVSEL             (3<<8)      /* Time Event Selection */
#define RTC_TEVSEL_MN_CHG      (0<<8)      /* Minute change */
#define RTC_TEVSEL_HR_CHG      (1<<8)      /* Hour change */
#define RTC_TEVSEL_EVDAY_MD    (2<<8)      /* Every Day at Midnight */
#define RTC_TEVSEL_EVDAY_NOON  (3<<8)      /* Every Day at Noon */

#define RTC_CEVSEL             (3<<16)     /* Calendar Event Selection */
#define RTC_CEVSEL_WEEK_CHG    (0<<16)     /* Week Change */
#define RTC_CEVSEL_MONTH_CHG   (1<<16)     /* Month Change */
#define RTC_CEVSEL_YEAR_CHG    (2<<16)     /* Year Change */

/*-----------------------------*/
/* RTC_HMR: Hour Mode Register */
/*-----------------------------*/
#define RTC_24_HRMOD           (0<<0)      /* 24-Hour Mode */
#define RTC_12_HRMOD           (1<<0)      /* 12-Hour Mode */

/*-------------------------*/
/* RTC_TIMR: Time Register */
/*-------------------------*/
#define RTC_M_SEC              (0x7F<<0)   /* Second Mask */
#define RTC_B_SEC              0           /* Second Bit Shift */
#define RTC_M_MIN              (0x7F<<8)   /* Minute Mask */
#define RTC_B_MIN              8           /* Minute Bit Shift */
#define RTC_M_HOUR             (0x3F<<16)  /* Hour Mask */
#define RTC_B_HOUR             16          /* Hour Bit Shift */
#define RTC_AMPM               (1<<22)     /* AMPM Indicator */
#define RTC_AM                 (0<<22)     /* AM Indicator */
#define RTC_PM                 (1<<22)     /* PM Indicator */

/*-----------------------------*/
/* RTC_CALR: Calendar Register */
/*-----------------------------*/
#define RTC_M_CENT             (0x3F<<0)   /* Century Mask */
#define RTC_B_CENT             0           /* Century Bit Shift */
#define RTC_M_YEAR             (0xFF<<8)   /* Year Mask */
#define RTC_B_YEAR             8           /* Year Bit Shift */
#define RTC_M_MONTH            (0x1F<<16)  /* Month Mask */
#define RTC_B_MONTH            16          /* Month Bit Shift */
#define RTC_M_DAY              (0x07<<21)  /* Day Mask */
#define RTC_B_DAY              21          /* Day Bit Shift */
#define RTC_M_DATE             (0x3F<<24)  /* Date Mask */
#define RTC_B_DATE             24          /* Date Bit Shift */

/*------------------------------*/
/* RTC_TAR: Time Alarm Register */
/*------------------------------*/
#define RTC_SEC_ALRM_DIS       (0<<7)      /* Second Alarm Disable */
#define RTC_SEC_ALRM_EN        (1<<7)      /* Second Alarm Enable */
#define RTC_MIN_ALRM_DIS       (0<<15)     /* Minute Alarm Disable */
#define RTC_MIN_ALRM_EN        (1<<15)     /* Minute Alarm Enable */
#define RTC_HOUR_ALRM_DIS      (0<<23)     /* Hour Alarm Disable */
#define RTC_HOUR_ALRM_EN       (1<<23)     /* Hour Alarm Enable */

/*----------------------------------*/
/* RTC_CAR: Calendar Alarm Register */
/*----------------------------------*/
#define RTC_MONTH_ALRM_DIS     (0<<23)     /* Month Alarm Disable */
#define RTC_MONTH_ALRM_EN      (1<<23)     /* Month Alarm Enable */
#define RTC_DATE_ALRM_DIS      (0<<31)     /* Date Alarm Disable */
#define RTC_DATE_ALRM_EN       (1<<31)     /* Date Alarm Enable */

/*-------------------------------------*/
/* RTC_SR:  Status Register            */
/* RTC_SCR: Status Clear Register      */
/* RTC_IER: Interrupt Enable Register  */
/* RTC_IDR: Interrupt Disable Register */
/* RTC_IMR: Interrupt Mask Register    */
/*-------------------------------------*/
#define RTC_ACKUPD             (1<<0)      /* Acknowledge for Update */
#define RTC_ALARM              (1<<1)      /* Alarm Flag */
#define RTC_SEC                (1<<2)      /* Second Event */
#define RTC_TIMEV              (1<<3)      /* Time Event */
#define RTC_CALEV              (1<<4)      /* Calendar Event */

/*-------------------------------*/
/* RTC_VER: Valid Entry Register */
/*-------------------------------*/
#define RTC_NVT                (1<<0)      /* Non-Valid Time */
#define RTC_NVC                (1<<1)      /* Non-Valid Calendar */
#define RTC_NVTAL              (1<<2)      /* Non-Valid Time Alarm */
#define RTC_NVCAL              (1<<3)      /* Non-Valid Calendar Alarm */


#endif /* __RTC_H */

⌨️ 快捷键说明

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