periodHost.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* periodHost.c - target support of host side period command */
  2. /* Copyright 1984-1998 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01c,04sep98,cdp  apply 01b for all ARM CPUs with ARM_THUMB==TRUE.
  8. 01b,11jul97,cdp  added (Thumb) ARM7TDMI_T support.
  9. 01a,02oct95,pad  created, copied from usrLib.c version 08j.
  10. */
  11. /*
  12. DESCRIPTION
  13. This file consists of the support routine for the repeat command meant to be
  14. executed from the WindSh shell.
  15. */
  16. /* includes */
  17. #include "vxWorks.h"
  18. #include "taskLib.h"
  19. /* externals */
  20. IMPORT int sysClkRateGet (void); /* Get the system clock rate */
  21. /*******************************************************************************
  22. *
  23. * periodHost - call a function periodically
  24. *
  25. * This command repeatedly calls a specified function, with up to eight of its
  26. * arguments, delaying the specified number of seconds between calls.
  27. *
  28. * Normally, this routine is called only by period{}, which spawns
  29. * it as a task.
  30. *
  31. * RETURNS: N/A
  32. *
  33. * SEE ALSO: period{}
  34. */
  35. void periodHost
  36.     (
  37.     int secs, /* no. of seconds to delay between calls */
  38.     FUNCPTR func, /* function to call repeatedly */
  39.     int arg1, /* first of eight args to pass to func */
  40.     int arg2,
  41.     int arg3,
  42.     int arg4,
  43.     int arg5,
  44.     int arg6,
  45.     int arg7,
  46.     int arg8
  47.     )
  48.     {
  49. #if ((CPU_FAMILY == ARM) && ARM_THUMB)
  50.     func = (FUNCPTR)((UINT32)func | 1);
  51. #endif
  52.     FOREVER
  53. {
  54. (* func) (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
  55. taskDelay (secs * sysClkRateGet ());
  56. }
  57.     }