?? timetask._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 ++ == 450)//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 + -