ESP8266軟件定時函數(shù)(可用于機智云定時開關(guān))
os_timer_t? os_timer? ? ? ? ? ? ? ?//定義軟件定時器的結(jié)構(gòu)體
void Led_Task_Run(void){? ? ?//定義回調(diào)函數(shù)
GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);? ? ? ? ?
//執(zhí)行完畢,我們要把定時時間設(shè)置0 ,定時使能狀態(tài)為false
timer_timers=0;
isTimer=false;
}
os_timer_disarm (&os_timer)? //關(guān)閉定時器函數(shù)的調(diào)用
?os_timer_setfn( &os_timer, (ETSTimerFunc *) ( Led_Task_Run ), NULL )? ?//調(diào)用回調(diào)函數(shù),回調(diào)之前關(guān)閉定時器
?os_timer_arm( &os_timer,1000, 0? ?)? //設(shè)置定時器參數(shù),并且使能? 0/1:表示是否重復(fù)調(diào)用定時
1000:表示毫秒
微秒定時器
#define? ?USE_US_TIMER? ? ? //調(diào)用微秒級必須定義這個參數(shù)
請在 user_init 起始第?一句,先調(diào)?用? ? ?system_timer_reinit();
os_timer_t? os_timer? ? ? ? ? ? ? ?//定義軟件定時器的結(jié)構(gòu)體
void Led_Task_Run(void){? ? ?//定義回調(diào)函數(shù)
GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);? ? ? ? ?
//執(zhí)行完畢,我們要把定時時間設(shè)置0 ,定時使能狀態(tài)為false
timer_timers=0;
isTimer=false;
}
os_timer_disarm (&os_timer)? //關(guān)閉定時器函數(shù)的調(diào)用
os_timer_setfn( &os_timer, (ETSTimerFunc *) (?Led_Task_Run?), NULL )? ?//調(diào)用回調(diào)函數(shù),回調(diào)之前關(guān)閉定時器
os_timer_arm( &os_timer,1000, 0? ?)? //設(shè)置定時器參數(shù),并且使能? 0/1:表示是否重復(fù)調(diào)用定時
1000:表示微秒
延時函數(shù)(微秒延時)
os_delay_us(uint16 us)
最?大值 65535 us
延時函數(shù)(毫秒延時)
void? dely_ms (u32? c_time)
{
for(; c_time>0;c_time--)
{
os_delay_us(1000)
}
}