Download presentation
Presentation is loading. Please wait.
Published byStanley Walker Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.