📄 rtcinner.c
字号:
/*
* 文件名: RTCInner.C
* 功能: 内部RTC接口函数
* 作者: Light Rain
* 时间: 2007-03-08
*
* 描述:
*/
#include "RTCInner.h"
extern void RTCInner_Handler(void); //在IRQ.s中定义
void RTCInnerInit( void )
{
INT32U c0,c1;
INT16U year,month,day,week,hour,min,sec;
// 中断设置
VICIntSelect &= (~(1<<13));
VICVectAddr10 = (INT32U)RTCInner_Handler;
VICVectCntl10 = (0x20 | 13);
CCR = 0; // 禁止时钟计数器
// 设置基准时钟分频器
PREINT = Fpclk/32768-1;
PREFRAC= Fpclk - (PREINT+1)*32768 ;
// 初始化内部时钟
DateTimeRead( &year, &month, &day, &week, &hour, &min, &sec );
YEAR = year;
MONTH = month;
DOM = day;
DOW = week;
HOUR = hour;
MIN = min;
SEC = sec;
/*CTIME0 = sec +
min <<8 +
hour<<16 +
week<<24 ;
CTIME1 = day +
month<<8 +
year<<16;*/
CIIR = 0x01; // 每一秒产生一次中断
CCR = 1; // 使能时钟计数器
//for(;;)
{
DelayMS(1000);
c0 = CTIME0 ;
c1 = CTIME1 ;
}
// 中断使能
VICIntEnable = 1 << 13;
}
void RTCInnerException( void )
{
OS_ENTER_CRITICAL();
// 计数器增量中断
if( ILR & 0x01 )
{
RTCInnerInterrupt();
ILR |= 0x01 ; // 清除中断标志
}
// 报警寄存器中断
if( ILR & 0x02 )
{
ILR |= 0x02; // 清除中断标志
}
VICVectAddr = 0;
OS_EXIT_CRITICAL();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -