| Getting Started with M68K Ada: Ada 95 Compilation System for the Motorola M68000 Family | ||
|---|---|---|
| Prev | Chapter 3. Real-Time Programs | Next |
The package Ada.Real_Time declares types and subprograms for use by real-time application programs. In M68K Ada, this package is implemented to offer maximum timing precision with minimum overhead.
The resolution of the time-related types is one microsecond. With a 32-bit word size, the range is approximately +/- 35 minutes. This is far greater than the maximum delay period likely to be needed in practice. For a 25 MHz MC68040 processor, the lateness of a delay is approximately 55 microseconds. That means that given a delay statement that expires at time T, and given that the delayed task has a higher priority than any ready task, then the delayed task will restart at T + 55 microseconds. This lateness is independent of the duration of the delay, and represents the time for a context switch plus the overhead of executing the delay mechanism.
It is therefore possible to run tasks at quite high frequencies, without an excessive overhead. On a 25 MHz M68K, you can run a task at 1000Hz, with an overhead (in terms of CPU time) of approximately 10 percent, leaving 90 percent for the application program.