Init. Task() • Initialize Ports, Operation Mode, LCD • Execution Time: ~100 ms • Runs Once
Time. Slice() • Use OCDelay() function for Timeslice • Period: 10 ms • Execution Time: 5 ms • CPU Load: 50%
Date. Task() • Calculate time and date, or update to new user-defined time and date • Period: 1 s • Execution Time: ~100 ms • CPU Load: 10%
Track. Task() • Decide which tracking mode to implement • Two subtasks: Active() and Passive() • Active() – Period: 10 mins; Execution Time: ~10 s • Passive() – Period: 30 minutes; Execution Time: ~15 s • Track. Task() CPU Load: 1. 67% + 0. 83%
Temp. Task() • Calculate temperature • Period: 1 s • Execution Time: 20 ms • CPU Load: 2%
UITask() • Update LCD with current time, current date, and current temperature reading • Update indicator LEDs with tracking mode currently in use • Period: 1 s • Execution Time: 10 ms • CPU Load: 1%
Estimated CPU Load Estimated Max CPU Load = 50% + 1. 67% + 0. 83% + 2% + 1% = 65. 5% • Less than 100% CPU Load