![](http://pdfasset.owneriq.net/9/fb/9fbfa399-be01-4490-812f-c791db5ef399/9fbfa399-be01-4490-812f-c791db5ef399-bg112.png)
260
9. Sample Program Description
9.1 Overview of Sample Program
As an example application of MR100, the following shows a program that outputs a string to the standard output device
from one task and another alternately.
Table 9.1 Functions in the Sample Program
Function
Name
Type ID No. Priority Description
main() Task 1 1 Starts task1 and task2.
task1() Task 2 2 Outputs "task1 running."
task2() Task 3 3 Outputs "task2 running."
cyh1() Handler 1 Wakes up task1().
The content of processing is described below.
• The main task starts task1, task2, and cyh1, and then terminates itself.
• task1 operates in order of the following.
1. Gets a semaphore.
2. Goes to a wakeup wait state.
3. Outputs "task1 running."
4. Frees the semaphore.
• task2 operates in order of the following.
1. Gets a semaphore.
2. Outputs "task2 running."
3. Frees the semaphore.
cyh1 starts every 100 ms to wake up task1.