charlie-cube/tunnel.ino
2022-04-17 20:28:42 -04:00

56 lines
1.9 KiB
C++

/*********************************** TUNNEL ***********************************\
|
| Modified By: S. Dugre to use asynchronous timer
\******************************************************************************/
int color1[] = {R,R,R,R,B,B,B,B};
int bright1[] = {2,4,6,8,2,4,6,8};
int color2[] = {B,B,B,B,R,R,R,R};
int bright2[] = {8,6,4,2,8,6,4,2};
int index[] = {0,1,2,3,4,5,6,7};
//int animationSpeed =100;
void tunnel() {
if (currentState != lastState) {
lastState = currentState;
Serial.print("New State = ");
Serial.println(currentState);
currentTimer = 0;
maxTimer = 6250; // 100ms (100,000 us / 16 us)
}
if ( timerReset) {
drawBoxWalls(color1[index[0]],bright1[index[0]],1,1,0,2,2,0);
drawBoxWalls(color2[index[0]],bright2[index[0]],1,1,0,2,2,0);
drawBoxWalls(color1[index[1]],bright1[index[1]],1,1,1,2,2,1);
drawBoxWalls(color2[index[1]],bright2[index[1]],1,1,1,2,2,1);
drawBoxWalls(color1[index[2]],bright1[index[2]],1,1,2,2,2,2);
drawBoxWalls(color2[index[2]],bright2[index[2]],1,1,2,2,2,2);
drawBoxWalls(color1[index[3]],bright1[index[3]],1,1,3,2,2,3);
drawBoxWalls(color2[index[3]],bright2[index[3]],1,1,3,2,2,3);
drawBoxWalls(color1[index[4]],bright1[index[4]],0,0,3,3,3,3);
drawBoxWalls(color2[index[4]],bright2[index[4]],0,0,3,3,3,3);
drawBoxWalls(color1[index[5]],bright1[index[5]],0,0,2,3,3,2);
drawBoxWalls(color2[index[5]],bright2[index[5]],0,0,2,3,3,2);
drawBoxWalls(color1[index[6]],bright1[index[6]],0,0,1,3,3,1);
drawBoxWalls(color2[index[6]],bright2[index[6]],0,0,1,3,3,1);
drawBoxWalls(color1[index[7]],bright1[index[7]],0,0,0,3,3,0);
drawBoxWalls(color2[index[7]],bright2[index[7]],0,0,0,3,3,0);
flushBuffer();
clearBuffer();
for (int i = 0; i < 8; i++){
//index[i] = index[i]==7?0:index[i]+1;
index[i] = (index[i]+1)%8;
}
timerReset = false;
}
}