home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / PCWK996.iso / demo / wgelectr / pk51demo / files.2 / EXAMPLES / RTX_EX2 / RTX_EX2.C < prev    next >
C/C++ Source or Header  |  1993-10-07  |  3KB  |  59 lines

  1. /******************************************************************************/
  2. /*                                                                            */
  3. /*                     RTX_EX2.C:  A RTX-51 Application                       */
  4. /*                                                                            */
  5. /******************************************************************************/
  6.  
  7. #include <rtx51tny.h>                 /* RTX-51 tiny functions & defines      */
  8.  
  9. int counter0;                         /* counter for task 0                   */
  10. int counter1;                         /* counter for task 1                   */
  11. int counter2;                         /* counter for task 2                   */
  12. int counter3;                         /* counter for task 2                   */
  13.  
  14. /******************************************************************************/
  15. /*       Task 0 'job0':  RTX-51 tiny starts execution with task 0             */
  16. /******************************************************************************/
  17. job0 () _task_ 0  {                  
  18.   os_create_task (1);                 /* start task 1                         */
  19.   os_create_task (2);                 /* start task 2                         */
  20.   os_create_task (3);                 /* start task 3                         */
  21.  
  22.   while (1)  {                        /* endless loop                         */
  23.     counter0++;                       /* increment counter 0                  */
  24.     os_wait (K_TMO, 5, 0);            /* wait for timeout: 5 ticks            */
  25.   }
  26. }
  27.  
  28. /******************************************************************************/
  29. /*   Task 1 'job1':  RTX-51 tiny starts this task with os_create_task (1)     */
  30. /******************************************************************************/
  31. job1 () _task_ 1  {
  32.   while (1)  {                        /* endless loop                         */
  33.     counter1++;                       /* increment counter 1                  */
  34.     os_wait (K_TMO, 10, 0);           /* wait for timeout: 10 ticks           */
  35.   }
  36. }
  37.  
  38. /******************************************************************************/
  39. /*    Task 2 'job2':  RTX-51 tiny starts this task with os_create_task (2)    */
  40. /******************************************************************************/
  41. job2 () _task_ 2  {
  42.   while (1)  {                        /* endless loop                         */
  43.     counter2++;                       /* increment counter 2                  */
  44.     if (counter2 == 0)  {             /* signal overflow of counter 2         */
  45.       os_send_signal (3);             /* to task 3                            */
  46.     }
  47.   }
  48. }
  49.  
  50. /******************************************************************************/
  51. /*    Task 3 'job3':  RTX-51 tiny starts this task with os_create_task (3)    */
  52. /******************************************************************************/
  53. job3 () _task_ 3  {
  54.   while (1)  {                        /* endless loop                         */
  55.     os_wait (K_SIG, 0, 0);            /* wait for signal                      */
  56.     counter3++;                       /* process overflow from counter 2      */
  57.   }
  58. }
  59.