| Supports up to 256
queues. The size of each queue is defined during system configuration and may be any
number of bytes in size. A queue will hold any 8-bit encoded message or data. |
| Allows tasks to read
a queue optionally suspending the task until the queue is written to by another task. A
error flag may be checked if a queue is empty or has timed out. |
| Allows a task to be
suspended until a queue contains a specific number of bytes. This allows a task to wait
without CPU overhead until a queue has a minimum amount of data to process. |
| Supports two queue insertion functions.
One is high-speed and returns immediately without notification to
TurboTask. The second will allow TurboTask to reschedule if
necessary. |
| Provides interrupt
support to a configurable number of queues. The queue is initialized with addresses of
functions to enable and disable the interrupt source used with the queue. When a queue is
written to and interrupts are disabled, TurboTask will execute the interrupt enable
routine. The interrupt service routine will read the queue and process the data. When the
queue is empty, TurboTask will execute the stop interrupt routine. This feature is perfect
for serial transmit interrupts. For example, printf() can be directed to "print"
to a queue. TurboTask will start and stop transmit interrupts as needed to empty the queue
to the serial device. The demo program provided shows clearly how to use this powerful
feature.
|