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

📄 timetask.h

📁 基于单片机的短信报警机
💻 H
字号:


//TIMER1 initialize - prescale:256
// WGM: 0) Normal, TOP=0xFFFF
// desired value: 100mSec
// actual value: 100.000mSec (0.0%)
void timer1_init(void)
{
 TCCR1B = 0x00; //stop
 TCNT1H = 0xF4; //setup
 TCNT1L = 0xC0;
 OCR1AH = 0x0B;
 OCR1AL = 0x40;
 OCR1BH = 0x0B;
 OCR1BL = 0x40;
 ICR1H  = 0x0B;
 ICR1L  = 0x40;
 TCCR1A = 0x00;
 TCCR1B = 0x04; //start Timer
}

#pragma interrupt_handler timer1_ovf_isr:9
void timer1_ovf_isr(void)
{
 //TIMER1 has overflowed
 TCNT1H = 0xF4; //reload counter high value
 TCNT1L = 0xC0; //reload counter low value
 Time.Bz = TRUE; //定时标志置1
}
/**************************************************
*原型:void time1_task(void)
*功能:20ms中断到置time_s为1
*说明:利用定时中断去执行任务
*参数:无
*返回:无
**************************************************/
void Time1Task(void)
 {
	 Time.Bz = FALSE;			//毫秒定时标志清0
	 
	 Time.Sec--;
	   //LED闪烁
     LEDCOUNT = LED();
	 
	 if(Time.Mec ++ == 400)//1分钟定时450*120ms
	  			{
				 Time.Mec = NULL;//毫秒计数清
				 if(Time.Min++ == Time.Atd)//如果定时到
				 			 {
							    Time.Min = NULL;//分钟定时清0
								if((!Busybz)&&(WorkCount>RTEL))//如果在未拔号状态
							  			   {
										     WorkCount = CALLTEL;
											 DealTxUartBz = TRUE;//如果未读到电话本,红灯亮
							  			   }
							  }
				 }
	  if(!Time.Sec)//定时到
				{
				
				 Time.Sec = timesec; //2秒定时
				 if(WorkCount < NULLACK)  
				 				DealTxUartBz = TRUE;//如果未读到电话本,红灯亮
			
				 }

				 
  }

⌨️ 快捷键说明

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