Date post: | 01-Jan-2016 |
Category: |
Documents |
Upload: | nehru-manning |
View: | 26 times |
Download: | 1 times |
KernelMicroC/OS-II
• Real-time preemptive multitasking kernel• Priority Based• 1 ms tick period• 1 ISRs• Intertask communication
MutexesSemaphores
Tasks and PrioritiesTask Priority
Start Task 4
PWM Task 5
Transmit Task 6
Key Task 7
Computations Task 8
User Interface Task 9
Start TaskDescription:
Initializes the systemCreates other tasksPulses cube lightsPriority #4Period: Once (startup)Execution time ~2s
PWM TaskDescription:
Resets timer required by LED drivers for PWM Interrupt basedPriority #5Period: 166μsExecution time(max): 1.6μsCPU Load: 0.9%
Transmit TaskDescription:
Transmit data over SPI (Serial Peripheral Interface)
Priority #6Period Sporadic 16msExecution time(max): 98μsCPU Load: 0.6125%
Key TaskDescription:
Periodically Scans keypadPriority #7Period: 10msExecution time(max): 10μsCPU Load: 0.1%
Computations TaskDescription:
Calculates data to be transmitted to the LED drivers
Priority #8Period: ~100ms (Sporadic)Execution time(max): ~10msCPU load: ~10%
User Interface TaskDescription:
Updates LCD, controls program states, and functionality of button presses
Priority: 9Period: 100ms(Sporadic)Execution Time(max): ~10msCPU load: ~10%
Module/Library Description 1/2Module Tasks Public Resources SourceKeypad KeyTask void KeyInit(void)
void KeyPend(void)Todd MortonMinimally modified
LCD void LcdInit(void);void LcdClrDisp(void);void LcdClrLine(INT8U line);void LcdDispChar(INT8U c);void LcdDispByte(INT8U *b);void LcdDispStrg(INT8U *s);void LcdMoveCursor(INT8U row, INT8U col);void LcdDispDecByte(INT8U *b, INT8U lz);void LcdDispTime(INT8U hrs, INT8U mins, INT8U secs);void LcdCursor(INT8U on, INT8U blink);void LcdBSpace(void);void LcdFSpace(void);
Andrew Pace,Todd Morton
SPI Transmit Task void DS3234SpiInit(void)INT8U RTCXfr(INT8U wdata)
Todd MortonModifiedBased on SPI examples
Module/Library Description 2/2Module Tasks Public Resources Source
TLC5940_LibStart TaskTransmit Task
void TLC5940Init(void)void TLC5940clockDC(void)void TLC5940Clear(void)void TLC5940PWMClr(void)
Original
Main UI Task Original