📄 rtc.c
字号:
/* ATmega103 rtc.c file
Author : Robert Stuart
Company : PDL Industries Ltd
day of Creation : 15 July 1999
Tested : 15 July 1999
Function :
*/
/* include */
#include "rtc.h"
void RTCInitialise( void )
{
TIMSK &= ~(BIT(TOIE0) | BIT(OCIE0));
ASSR |= 8;
TCNT0 = 0;
TCCR0 = BIT(CS02) | BIT(CS00);
while ( ASSR & 0x07 );
TIMSK |= BIT(TOIE0);
Time.Second = 0;
Time.Minute = 46;
Time.Hour = 9;
Time.Day = 26;
Time.Month = 4;
Time.Year = 2000;
}
void RTCInterrupt( void )
{
if ( ++Time.Second == 60 ) /* keep track of time, day, month, and year */
{
Time.Second = 0;
if ( ++Time.Minute == 60 )
{
Time.Minute = 0;
if ( ++Time.Hour == 24 )
{
Time.Hour = 0;
if ( ++Time.Day == 32 )
{
Time.Month++;
Time.Day = 1;
}
else if ( Time.Day == 31 )
{
if ( Time.Month == 4 || Time.Month == 6 || Time.Month == 9 || Time.Month == 11 )
{
Time.Month++;
Time.Day = 1;
}
}
else if ( Time.Day == 30 )
{
if ( Time.Month == 2 )
{
Time.Month++;
Time.Day = 1;
}
}
else if ( Time.Day == 29 )
{
if ( Time.Month == 2 && Time.Year % 400 )
{
Time.Month++;
Time.Day = 1;
}
}
if ( Time.Month == 13 )
{
Time.Month = 1;
Time.Year++;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -