stack timer

我的第一篇技術性文章。

stack timer的使用過程:

 1 初始化timer

stack_timer_struct *timer_adcsche;  

 

stack_init_timer(timer_adcsche, "ADC Sche Timer", MOD_BMT);//初始化,三個參數分別爲timer id,timer name和MODULE id

 

 

event_scheduler     *adc_sche_event_scheduler_ptr;

adc_sche_event_scheduler_ptr = new_evshed(timer_adcsche,
                                                adc_sche_start_base_timer,
                                                adc_sche_stop_base_timer,
                                                0 , kal_evshed_get_mem, kal_evshed_free_mem, 255);

//創建一個event scheduler,六個參數分別爲初始化中已經初始化好的timer id,Start timer函數,stop timer函數,無符號的int數(還不知道有什麼用,在這裏爲0),分配內存的函數,釋放內存的函數,最後是delay time,最大可延遲時間,這個表示timer的準確度,這個參數的作用主要是用於節省電池。。

 

 adc_sche_set_timer_page_align(KAL_TRUE);//This function is to set up timer as page align or not.猜測align應該爲alignment.設定是否爲alignment timer,即是否對timer進行調整,如果傳入kal_ture,會調用evshed_set_aligned_timer(void *timer_id, kal_uint8 max_delay);其中的timer id是全局變量。

2set timer

 

MeasParameter adc_parameters[MAX_CHANNEL];

void adc_sche_set_timer(kal_uint8 adc_sche_id, kal_uint32 tick, kal_timer_func_ptr call_func)
{

 adc_parameters[adc_sche_id].adc_sche_event_id = evshed_set_event(adc_sche_event_scheduler_ptr,
                                                        (kal_timer_func_ptr)call_func, &adc_parameters[adc_sche_id], tick);

//4個參數分別爲在初始化中new_evshed創建的adc_sche_event_scheduler_ptr,timer超時後的回調函數,回調函數的參數,最後一個是elapse time,一般設爲1
}

 

 

上面是mmi timer的基礎

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章