+ All Categories
Home > Documents > LED CUBE

LED CUBE

Date post: 01-Jan-2016
Category:
Upload: nehru-manning
View: 26 times
Download: 1 times
Share this document with a friend
Description:
LED CUBE. Preliminary System Software Design Fernando J. Garcia May 16 2013. Microcontroller. MC9S12DP512 Bus frequency of 24MHz Memory Requirements ROM ~13K bytes RAM 4K bytes. Kernel. MicroC/OS-II Real-time preemptive multitasking kernel Priority Based 1 ms tick period 1 ISRs - PowerPoint PPT Presentation
Popular Tags:
17
Transcript

LED CUBEPreliminary System Software Design

Fernando J. GarciaMay 16 2013

MicrocontrollerMC9S12DP512

• Bus frequency of 24MHz• Memory Requirements

ROM ~13K bytesRAM 4K bytes

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%

Total CPU Load

L_max = 21.62%Average= 15%

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

Data Flow Diagram 1/3

Data Flow Diagram 2/3

Data Flow Diagram 3/3


Recommended