云服务器内容精选

  • 结果验证 得到的结果为: Create Timer1 successstart Timer1 sucesstick =800Stop Timer1 sucessg_timerCount1=1201tick_last1=1201delete Timer1 successStart Timer2g_timerCount2=1tick_last2=1301g_timerCount2=2tick_last2=1401g_timerCount2=3tick_last2=1501g_timerCount2=4tick_last2=1601g_timerCount2=5tick_last2=1701g_timerCount2=6tick_last2=1801g_timerCount2=7tick_last2=1901g_timerCount2=8tick_last2=2001g_timerCount2=9tick_last2=2101g_timerCount2=10tick_last2=2201
  • 编程示例 前提条件:在menuconfig菜单中完成软件定时器的配置。 代码实现如下: UINT32 g_timerCount1 = 0;UINT32 g_timerCount2 = 0;VOID Timer1_CallBack(UINT32 arg){ UINT64 lastTick; g_timerCount1++; lastTick=(UINT32)LOS_TickCountGet(); dprintf("g_timerCount1=%d\n", g_timerCount1); dprintf("tick_last1=%d\n", lastTick);}VOID Timer2_CallBack(UINT32 arg){ UINT64 lastTick; lastTick=(UINT32)LOS_TickCountGet(); g_timerCount2++; dprintf("g_timerCount2=%d\n", g_timerCount2); dprintf("tick_last2=%d\n", lastTick);}VOID Timer_example(VOID){ UINT16 id1; // Timer1 id UINT16 id2; // Timer2 id UINT32 tick; LOS_SwtmrCreate(1000, LOS_SWTMR_MODE_ONCE, Timer1_CallBack, &id1, 1); LOS_SwtmrCreate(100, LOS_SWTMR_MODE_PERIOD, Timer2_CallBack, &id2, 1); dprintf("create Timer1 success\n"); LOS_SwtmrStart(id1); dprintf("start Timer1 sucess\n"); LOS_TaskDelay(200); LOS_SwtmrTimeGet(id1, &tick); dprintf("tick =%d\n", tick); LOS_SwtmrStop(id1); dprintf("stop Timer1 sucess\n"); LOS_SwtmrStart(id1); LOS_TaskDelay(1000); LOS_SwtmrDelete(id1); dprintf("delete Timer1 sucess\n"); LOS_SwtmrStart(id2); dprintf("start Timer2\n"); LOS_TaskDelay(1000); LOS_SwtmrStop(id2); LOS_SwtmrDelete(id2); }