20130305

    今天主要做lwip協議棧中的DHCP部分。學會了一個用數組來輪詢的方法。1.將函數指針當成數組的一個元素 2.參數等都可以當變量 3.使用判斷條件for循環就能輪詢的調用這些函數了。

 

  1. last_time = cur_time; 
  2. for(idxtimer=0; 
  3.     idxtimer < (sizeof(timers_table)/sizeof(timers_info)); 
  4.     idxtimer ++) 
  5.     ptmr_inf = &timers_table[idxtimer]; 
  6.     ptmr_inf->timer += time_diff; 
  7.     if (ptmr_inf->timer > ptmr_inf->timer_interval) 
  8.     { 
  9.         if (ptmr_inf->timer_func) 
  10.             ptmr_inf->timer_func(); 
  11.         ptmr_inf->timer -= ptmr_inf->timer_interval; 
  12.     } 

其中 timers_table的定義爲

 

  1. static timers_info timers_table[] = { 
  2.     /* LWIP_TCP */ 
  3.     { 0, TCP_FAST_INTERVAL,     tcp_fasttmr}, 
  4.     { 0, TCP_SLOW_INTERVAL,     tcp_slowtmr}, 
  5.     /* LWIP_ARP */ 
  6.     { 0, ARP_TMR_INTERVAL,      etharp_tmr}, 
  7.     /* LWIP_DHCP */ 
  8.     #if LWIP_DHCP 
  9.     { 0, DHCP_COARSE_TIMER_SECS, dhcp_coarse_tmr}, 
  10.     { 0, DHCP_FINE_TIMER_MSECS,  dhcp_fine_tmr}, 
  11.     #endif 
  12. }; 

DHCP調通了添加DHCP部分。

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