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 Microcontroller MC9S12DP512 Bus frequency of 24MHz Memory Requirements  ROM ~13K bytes  RAM 4K bytes

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

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

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

7 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%

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

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

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

11 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%

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

13 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

14 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

15 Data Flow Diagram 1/3

16 Data Flow Diagram 2/3

17 Data Flow Diagram 3/3


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

Similar presentations


Ads by Google