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

📄 rtc.c

📁 一个在PROTEUS 中方真lpcarm的ucosii移植
💻 C
字号:
/****************************************Copyright (c)**************************************************
**--------------File Info-------------------------------------------------------------------------------
** File name:RTC.h
** Last modified Date:2007-12-20
** Last Version: 1.0
** Descriptions: RTC初始化,时间设置以及获取
**------------------------------------------------------------------------------------------------------
** Created by:   Rein Lee
** Created date: 2007-12-20
** Version:      1.0
** Descriptions: The original version
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
********************************************************************************************************/
#include "config.h"

/*********************************************************************************************************
** 函数名称: RTCInit
** 功能描述: RTC初始化
** 输 入: 无
** 输 出: 无       
** 全局变量: 无
** 调用模块: 无
**------------------------------------------------------------------------------------------------------
** Created by    Rein Lee
** Created date: 2007-12-20
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define	Fpclk1 2764800
void RTCInit(void)
{
    PREINT = Fpclk / 32768 - 1;
    PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
    //PREINT  = (Fpclk1 / (32768*10)) - 1;	      	// 设置基准时钟分频器
    //PREFRAC = Fpclk1 - (Fpclk1 / 32768) * 32768;
    CCR = 0x01;	
}
/*********************************************************************************************************
** 函数名称: getdate
** 功能描述: 获取当前日期
** 输 入: today 日期结构体
** 输 出: 无       
** 全局变量: 无
** 调用模块: 无
**------------------------------------------------------------------------------------------------------
** Created by    Rein Lee
** Created date: 2007-12-20
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void getdate(struct date *today)
{
	//uint32  datas;
    OS_ENTER_CRITICAL();
    /*
    datas = CTIME1;
	today->da_day = datas&0x1F;            	// 取得日值

	today->da_mon = (datas>>8)&0x0F;	 	// 取得月值

	today->da_year = (datas>>16)&0xFFF;	
	*/
    today->da_year = YEAR;
    today->da_mon = MONTH;
    today->da_day = DOM;
    today->da_dow = DOW;
    
    OS_EXIT_CRITICAL();
}
/*********************************************************************************************************
** 函数名称: gettime
** 功能描述: 获取当前时间
** 输 入: now 时间结构体
** 输 出: 无       
** 全局变量: 无
** 调用模块: 无
**------------------------------------------------------------------------------------------------------
** Created by    Rein Lee
** Created date: 2007-12-20
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void gettime(struct time *now)
{
	//uint32  times;
    OS_ENTER_CRITICAL();
    
    now->ti_hour = HOUR;
    now->ti_min = MIN;
    now->ti_sec = SEC;
    now->ti_hund = (CTC * 100) / 32768;
    /* 
    times = CTIME0;
	now->ti_sec = times&0x3F;					// 取得秒的值

    now->ti_min = (times>>8)&0x3F;				// 取得分的值
	
	now->ti_hour = (times>>16)&0x1F;				// 取得时的值
	*/
    OS_EXIT_CRITICAL();
}
/*********************************************************************************************************
** 函数名称: setdate
** 功能描述: 设置当前日期
** 输 入: today 日期结构体
** 输 出: 无       
** 全局变量: 无
** 调用模块: 无
**------------------------------------------------------------------------------------------------------
** Created by    Rein Lee
** Created date: 2007-12-20
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void setdate(struct date *today)
{
    OS_ENTER_CRITICAL();
    YEAR = today->da_year;
    MONTH = today->da_mon;
    DOM = today->da_day;
    DOW = today->da_dow;
    OS_EXIT_CRITICAL();
}
/*********************************************************************************************************
** 函数名称: settime
** 功能描述: 设置当前时间
** 输 入: now 时间结构体
** 输 出: 无       
** 全局变量: 无 
** 调用模块: 无
**------------------------------------------------------------------------------------------------------
** Created by    Rein Lee
** Created date: 2007-12-20
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void settime(struct time *now)
{
    OS_ENTER_CRITICAL();
    HOUR = now->ti_hour;
    MIN = now->ti_min;
    SEC = now->ti_sec;
    OS_EXIT_CRITICAL();
}
/*********************************************************************************************************
** 函数名称: RTC_Exception
** 功能描述: RTC中断函数
** 输 入: 无
** 输 出: 无       
** 全局变量: 无
** 调用模块: 无
**------------------------------------------------------------------------------------------------------
** Created by    Rein Lee
** Created date: 2007-12-20
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
/*
void RTC_Exception(void)
{
	uint8 IIR;
	OS_ENTER_CRITICAL();
	IIR=ILR;
	while((IIR & 0x01) != 0)
	{
		ILR = 0x01;						// 清除中断标志
       	//gettime(&now);
        //getdate(&today);
	}
	VICVectAddr = 0;      				// 通知中断控制器中断结束
    OS_EXIT_CRITICAL();
}
*/
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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