Traffic Example
The Traffic example represents a pedestrian traffic light showing the use of the RTX-RTOS. The traffic light operates during a user-defined time interval. Outside this time interval, the yellow light flashes. If a pedestrian pushes the request button, the traffic light goes immediately into walk state.
Software
The project located in the folder \ARM\RL\RTX\Examples\Traffic contains the files:
TRAFFIC.C includes the traffic light controller program, which is divided into the following tasks:
- init: initializes the serial interface and starts all other tasks. This task deletes itself.
- command: controls and processes the received serial commands.
- clock: controls the time.
- blinking: flashes the yellow light when the current time is outside the active time interval.
- lights: controls the traffic light phases while the clock time is in the active time range (between the start and end times).
- keyread: reads the pedestrian push button and sends a signal to the task lights.
- get_escape: If an ESC character is found in the serial stream, the task command gets a signal to terminate the display command.
SERIAL.C implements the interrupt controlled and event driven serial I/O interface.
GETLINE.C reads and processes the commands from the serial port.
Startup.s provides the microcontroller startup configuration.
RTX_Config.c configures the RTX-RTOS and provides global functions.
Traffic Light Commands
The table below lists the traffic light commands:
| Command | Meaning | Description |
|---|
| D | Display | Displays the clock, start, and end times. |
| T hh:mm:ss | current Time | Sets the current time in 24-hour format. |
| S hh:mm:ss | Start time | Sets the interval start time in 24-hour format. The traffic light operates between the start and end time. Outside this interval, the yellow light flashes. |
| E hh:mm:ss | End time | Sets the interval end time in 24-hour format. The traffic light operates between the Start and End time. Outside this interval, the yellow light flashes. |
| ESC | Abort command | Press the ESC-key to abort the command. |
Test the Traffic Example
The project is delivered with the target Simulator. To test the example:
Start the µVision debugger.
Run the TRAFFIC application. Enable View — Periodic Window Update to view the lights in the Watch Window during program execution.
The serial window UART #2 displays the output and allows entering the commands described in the table above.- Set the clock time outside of the active time interval to flash the yellow light.

The watch variables show the ports that drive the lights.
- The push_key signal function simulates the pedestrian push key that switches the light system to the walk state. This function is called from the Toolbox button Push for Walk.

- Use the menu Debug — Function Editor to open the file TRAFFIC.INC. This file is specified in Options for Target — Debug — Initialization File and defines the signal function push_key, the port initialization, and the toolbar button.
