timing.c

来自「使用AVR单片机实现的万年历功能,其中使用了ds1302和1602」· C语言 代码 · 共 58 行

C
58
字号
#include "timing.h"

interrupt [TIM0_COMP] void Timer0CompIsr(void)
{
	time2msIsOK = 1;	//中断中置2ms时间到
}
/*****************************************************
函数void TimingInit(void)为计时初始化函数
*****************************************************/
void TimingInit(void)
{
	TCCR0 = 0x0B;       //CTC模式,64分频,PB3为通用引脚(OC0不与其连接)
	OCR0 = 0x7C;        //OCR0置124
	TIMSK |= 0x02;      //允许TIM0比较匹配中断
	time10msCounter = 0;
	time500msCounter = 0;
	time2sCounter = 0;
	time20sCounter = 0;
}
/*****************************************************************
函数void FindTime(void)为查询2ms,10ms,500ms,2s,20s是否到的函数
*****************************************************************/
void FindTime(void)
{
	if (time2msIsOK)
	{
		time2msIsOK = 0;
        
		if(++time10msCounter == 5)
        {
			time10msIsOK = 1;
            time10msCounter = 0;                    
			
			if(++time500msCounter == 50)
            {
				time500msIsOK = 1;
				time500msCounter = 0;                                     
                
				if(++time2sCounter == 4)
				{
					time2sIsOK = 1;
					time2sCounter = 0;
					
					if(++time20sCounter == 10)
					{
						time20sIsOK = 1;
						time20sCounter = 0;
					}
                                                
				}
                                        
			}
                                
		}       
                        
	}  
	
}

⌨️ 快捷键说明

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