timer.c

来自「AVR mega16/mega32的UART FIFO发送.超时接收,广泛应用于」· C语言 代码 · 共 30 行

C
30
字号
#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++;
	}
}

⌨️ 快捷键说明

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