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

📄 rtc.c

📁 里面给出了ATmega103单片机编程的C语言实例程序
💻 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 + -