55,6 → 55,8 |
void Animation_Pseudo_Random_Colors(int iterations,int delay_ms); |
void Animation_Random_Colors(int iterations, int delay_ms); |
void Animation_Cube_In_Cube(int iterations, int delay_ms); |
void Animation_Single_Rotation(int iterations, int delay_ms); |
void Animation_Double_Rotation(int iterations, int delay_ms); |
|
void Delay_MS(unsigned int delay_ms) { |
// Delays the CPU for the given amount of time. |
103,7 → 105,13 |
|
// Begin display |
Cube_Set_All(0xFF,0xFF,0xFF); |
Delay_MS(3000); |
Delay_MS(6000); |
Cube_Set_All(0xFF,0,0); |
Delay_MS(6000); |
Cube_Set_All(0,0xFF,0); |
Delay_MS(6000); |
Cube_Set_All(0,0,0xFF); |
Delay_MS(6000); |
|
// Loop through some preset animations |
while(1) { |
115,6 → 123,8 |
Animation_Pseudo_Random_Colors(10,300); |
Animation_Random_Colors(10,300); |
Animation_Cube_In_Cube(4,300); |
Animation_Single_Rotation(3,20); |
Animation_Double_Rotation(2,40); |
} |
} |
|
143,7 → 153,7 |
// Function call on button 2 press to change brightness |
void BTN2_Interrupt(void) { |
static char state; |
state = (state == 5) ? 0 : state + 1; |
state = (state == 6) ? 0 : state + 1; |
TIMER5_Stop(); |
Delay_MS(1); // Need to wait for all SPI writes to complete |
char BC; |
164,8 → 174,11 |
BC = 0x40; |
break; |
case 5: |
BC = 0x70; |
BC = 0x80; |
break; |
case 6: |
BC = 0xFF; |
break; |
} |
Cube_Write_DCS(BC); |
TIMER5_Start(); |
467,4 → 480,96 |
Delay_MS(delay_ms); |
} |
} |
} |
|
void Animation_Single_Rotation(int iterations, int delay_ms) { |
Cube_Clear(); |
int i,x,y,z; |
for (z = 0; z < 3; z++) { |
switch (z % 3) { |
case 0: |
for (y = 0; y < CUBE_LAYER_COUNT; y++) { |
Cube_Set_Pixel(y, 0, 0, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 1, 1, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 2, 2, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 3, 3, 0xFF, 0x00, 0x00); |
} |
break; |
case 1: |
for (y = 0; y < CUBE_LAYER_COUNT; y++) { |
Cube_Set_Pixel(y, 0, 0, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 1, 1, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 2, 2, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 3, 3, 0x00, 0xFF, 0x00); |
} |
break; |
case 2: |
for (y = 0; y < CUBE_LAYER_COUNT; y++) { |
Cube_Set_Pixel(y, 0, 0, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 1, 1, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 2, 2, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 3, 3, 0x00, 0x00, 0xFF); |
} |
break; |
} |
|
for (i = 0; i < iterations; i++) { |
for (x = 0; x < 28; x++) { |
Delay_MS(delay_ms); |
Cube_Rotate(); |
} |
} |
} |
} |
|
void Animation_Double_Rotation(int iterations, int delay_ms) { |
Cube_Clear(); |
int i,x,y,z; |
for (z = 0; z < 3; z++) { |
switch (z % 3) { |
case 0: |
for (y = 0; y < CUBE_LAYER_COUNT; y++) { |
Cube_Set_Pixel(y, 0, 0, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 1, 1, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 2, 2, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 3, 3, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 4, 4, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 5, 5, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 6, 6, 0xFF, 0x00, 0x00); |
Cube_Set_Pixel(y, 7, 7, 0xFF, 0x00, 0x00); |
} |
break; |
case 1: |
for (y = 0; y < CUBE_LAYER_COUNT; y++) { |
Cube_Set_Pixel(y, 0, 0, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 1, 1, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 2, 2, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 3, 3, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 4, 4, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 5, 5, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 6, 6, 0x00, 0xFF, 0x00); |
Cube_Set_Pixel(y, 7, 7, 0x00, 0xFF, 0x00); |
} |
break; |
case 2: |
for (y = 0; y < CUBE_LAYER_COUNT; y++) { |
Cube_Set_Pixel(y, 0, 0, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 1, 1, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 2, 2, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 3, 3, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 4, 4, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 5, 5, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 6, 6, 0x00, 0x00, 0xFF); |
Cube_Set_Pixel(y, 7, 7, 0x00, 0x00, 0xFF); |
} |
break; |
} |
|
for (i = 0; i < iterations; i++) { |
for (x = 0; x < 28; x++) { |
Delay_MS(delay_ms); |
Cube_Rotate(); |
} |
} |
} |
} |