timeout.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "timeout.h"
  2. /*----------------------------------------------------------------------------
  3. * 设置定时器
  4. * tt:定时器指针
  5. * val,延时ms
  6. *---------------------------------------------------------------------------*/
  7. void timeout_setValue(timeout_t *tt,uint32_t val){
  8. tt->counter = Get_SysTick();
  9. tt->timeout = val;
  10. }
  11. /*----------------------------------------------------------------------------
  12. * 启动定时器
  13. * tt :定时器指针
  14. *---------------------------------------------------------------------------*/
  15. void timeout_start(timeout_t *tt){
  16. tt->counter = Get_SysTick();
  17. tt->flag = 1;
  18. tt->endMode = 1;
  19. }
  20. /*----------------------------------------------------------------------------
  21. * 停止定时器
  22. * tt: 定时器指针
  23. *---------------------------------------------------------------------------*/
  24. void timeout_stop(timeout_t *tt){
  25. tt->flag = 0;
  26. tt->endMode = 2;
  27. }
  28. /*----------------------------------------------------------------------------
  29. * 返回定时器是否超时
  30. * tt:定时器指针
  31. * 返回值 1:超时 0:未超时
  32. *---------------------------------------------------------------------------*/
  33. uint8_t timeout_isOut(timeout_t *tt){
  34. if(tt->flag){
  35. if((Get_SysTick() - tt->counter) > tt->timeout){
  36. tt->counter = Get_SysTick();
  37. if(tt->flag == 1){
  38. tt->flag = 0;
  39. }
  40. tt->endMode = 0x03;
  41. return 1;
  42. }
  43. else{
  44. return 0;
  45. }
  46. }
  47. else{
  48. return 1;
  49. }
  50. }