Presentation is loading. Please wait.

Presentation is loading. Please wait.

LED CUBE Preliminary System Software Design Fernando J. Garcia May 16 2013.

Similar presentations


Presentation on theme: "LED CUBE Preliminary System Software Design Fernando J. Garcia May 16 2013."— Presentation transcript:

1

2 LED CUBE Preliminary System Software Design Fernando J. Garcia May 16 2013

3 Overview Microcontroller Kernel  Tasks and priorities Tasks Descriptions  Priorities  Period  Execution time Total CPU load Module and library Flow Diagrams

4 Microcontroller MC9S12DP512 Bus frequency of 24MHz Memory Requirements  ROM ~13K bytes  RAM ~4K bytes

5 Kernel MicroC/OS-II Real-time preemptive multitasking kernel Priority Based 1 ms tick period 1 ISRs Intertask communication  Mutexes  Semaphores

6 Tasks and Priorities TaskPriority Start Task4 PWM Task5 Transmit Task6 Key Task7 Computations Task8 User Interface Task9

7 Start Task Description:  Initializes the system  Creates other tasks  Pulses cube lights  Priority #4  Period: Once (startup)  Execution time ~2s

8 PWM Task Description:  Resets timer required by LED drivers for PWM  Interrupt based  Priority #5  Period: 166μs  Execution time(max): 1.6μs  CPU Load: 0.9%

9 Transmit Task Description:  Transmit data over SPI (Serial Peripheral Interface)  Priority #6  Period Sporadic 16ms  Execution time(max): 98μs  CPU Load: 0.6125%

10 Key Task Description:  Periodically Scans keypad  Priority #7  Period: 10ms  Execution time(max): 10μs  CPU Load: 0.1%

11 Computations Task Description:  Calculates data to be transmitted to the LED drivers  Priority #8  Period: ~100ms (Sporadic)  Execution time(max): ~10ms  CPU load: ~10%

12 User Interface Task Description:  Updates LCD, controls program states, and functionality of button presses  Priority: 9  Period: 100ms(Sporadic)  Execution Time(max): ~10ms  CPU load: ~10%

13 Total CPU Load L_max = 21.62% Average= 15%

14 Module/Library Description 1/2 ModuleTasksPublic ResourcesSource KeypadKeyTaskvoid KeyInit(void) void KeyPend(void) Todd Morton Minimally modified LCDvoid 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 SPITransmit Taskvoid DS3234SpiInit(void) INT8U RTCXfr(INT8U wdata) Todd Morton Modified Based on SPI examples

15 Module/Library Description 2/2 ModuleTasksPublic ResourcesSource TLC5940_Lib Start Task Transmit Task void TLC5940Init(void) void TLC5940clockDC(void) void TLC5940Clear(void) void TLC5940PWMClr(void) Original MainUI TaskOriginal

16 Main Data Flow Diagram 1/3

17 KeyTask Flow Diagram 2/3

18 Programming Flow Diagram 3/3 TLC5940 Initialization TLC5940 LED control

19


Download ppt "LED CUBE Preliminary System Software Design Fernando J. Garcia May 16 2013."

Similar presentations


Ads by Google