http://www.javashuo.com/article/p-vgkgdsja-x.htmlhtml
定時器有兩種,軟件定時器和硬件定時器函數
軟件定時器就是靠裏面的任務延時實現的,,這樣的定時器其實延時不許確測試
硬件定時器 就是硬件中判定時器,咱都學過單片機,中斷的準確spa
先看軟件定時器指針
具體你們看下面code
因此第一步,定義一個定時器變量htm
能夠看這個文件,咱就是用這個頭文件blog
os_timer_t os_timer_one;//定義一個全局的定時器結構體變量get
先看帶參數的iframe
void *XXX 就是說能夠接收任意的指針變量
//定義一個定時器用的回調函數 void os_timer_one_function(void *parg) { printf("parg:%s\n", parg);//打印一下傳過來的參數 GPIO_OUTPUT_SET(5, 1-GPIO_INPUT_GET(5));//GPIO5輸出 反轉 }
os_timer_setfn(&os_timer_one,os_timer_one_function,"yang");//配置定時器 定時器結構體變量 回調函數 傳給回調函數的參數 os_timer_arm(&os_timer_one,500,1);//使能定時器 os_timer_one--定時器變量 500--500ms進一次 1--循環進去
下載進去
500ms亮 500ms滅
其實這個參數是
os_timer_setfn(&os_timer_one,os_timer_one_function,"yang");
這個時候傳過去的,只傳這一次,只不過,局部變量的值設置了是yang 後期進中斷的時候都沒有去設置這個參數
不帶參數就不說了哈
你們本身測試,報不報錯就看官方底層怎麼寫的了
如今看硬件中判定時器
而後...官方給了例子
咱就稍微改改回調函數裏面的
程序掛了......不能夠運行了,老是=重啓
而後我把
程序又好了
我感受這個定時器是us級的定時器
1000 才1ms
1ms進一次執行 printf printf還沒執行完 中斷又到了 因此程序崩了
u32 cnt = 0; void hw_test_timer_cb(void) { cnt++; if(cnt>1000) { cnt=0; printf("1111111111111:%s\n");//打印 } }
忘了..我後面怎麼加了個%s 忘了去掉了