Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 204 → Rev 205

/PIC Stuff/Cerebot_32MX7_LED_Cube/main.c
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.
100,10 → 102,16
 
BTN_DATA btn_data;
BTN_Init(&btn_data, &BTN1_Interrupt, &BTN2_Interrupt, NULL);
 
// 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();
}
}
}
}