timer.c

来自「DS18B20最全驱动.包含CRC8算法.ROM Search等.主机采用AVR」· C语言 代码 · 共 49 行

C
49
字号
#include "System.h"

//--------------定时器0——5ms程序--------------
//系统时钟:11059200Hz  分频:1024
//Timer0初始化
void Timer0Init(void)			//5ms
{
	TCCR0=0x00;
	TCNT0=0xcb;
	OCR0=0x35;
	TCCR0=(1<<WGM01)|(1<<CS02)|(1<<CS00);
	TIMSK|=(1<<OCIE0);
}

//Timer0 CTC中断,此中断发生周期是:5毫秒
ISR(TIMER0_COMP_vect)
{
	if(UartTimeoutFlag)
	{
		if(WaitForUartCounter>=1)
		{
			UartTimeoutFlag=0;
			WaitForUartCounter=0;
			UartDataReadyFlag=1;
			UCSRB&=~(1<<RXCIE);		//禁止接收
		}
		else WaitForUartCounter++;
	}
	if(ReadTFlag)
	{
		if(ReadTCounter>=ReadTCounterTimeout)
		{
			ReadTFlag=0;
			ReadTCounter=0;
			ProcessReadT=_ReadT;
		}
		else ReadTCounter++;
	}
	if(EnableOneWireFlag)
	{
		if(CheckDS18B20Counter>=CheckDS18B20Timeout)
		{
			CheckDS18B20Counter=0;
			CheckDS18B20TimeoutFlag=1;
		}
		else CheckDS18B20Counter++;
	}
}

⌨️ 快捷键说明

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