added asynchronous timer
This commit is contained in:
parent
53879d6546
commit
62666ebb8c
6 changed files with 608 additions and 505 deletions
218
planarFlop3D.ino
218
planarFlop3D.ino
|
|
@ -1,91 +1,159 @@
|
|||
/******************************* PLANAR FLOP 3D *******************************\
|
||||
| Version 2 of the planar flop, doing more complicated maths and 3D vectors |
|
||||
| 'n stuff. Making this function found the bug of reversed z axis line drawing |
|
||||
| |
|
||||
| Modified By: S. Dugre to use asynchronous timer |
|
||||
\******************************************************************************/
|
||||
|
||||
int planarCase;
|
||||
|
||||
void planarFlop3D() {
|
||||
continuePattern = true;
|
||||
int animationSpeed = 50;
|
||||
while (continuePattern) {
|
||||
|
||||
for (int y = 3; y > 0; y--) {
|
||||
for (int z = 0; z < 4; z++) drawLine(color, 0, 3, z, 3, y, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
for (int x = 3; x > 0; x--) {
|
||||
for (int z = 0; z < 4; z++) drawLine(color, 0, 3, z, x, 0, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
if (currentState != lastState) {
|
||||
|
||||
lastState = currentState;
|
||||
Serial.print("New State = ");
|
||||
Serial.println(currentState);
|
||||
|
||||
currentTimer = 0;
|
||||
maxTimer = 3125; // 50 ms
|
||||
|
||||
for (int x = 0; x < 3; x++) {
|
||||
for (int y = 0; y < 4; y++) drawLine(color, 0, y, 0, x, y, 3);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
for (int z = 3; z > 0; z--) {
|
||||
for (int y = 0; y < 4; y++) drawLine(color, 0, y, 0, 3, y, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
planarCase = 0;
|
||||
}
|
||||
|
||||
for (int z = 0; z < 3; z++) {
|
||||
for (int x = 0; x < 4; x++) drawLine(color, x, 0, 0, x, 3, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
for (int y = 3; y > 0; y--) {
|
||||
for (int x = 0; x < 4; x++) drawLine(color, x, 0, 0, x, y, 3);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
if (timerReset) {
|
||||
switch (planarCase) {
|
||||
case 0:
|
||||
for (int y = 3; y > 0; y--) {
|
||||
for (int z = 0; z < 4; z++) drawLine(color, 0, 3, z, 3, y, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
for (int y = 0; y < 3; y++) {
|
||||
for (int z = 0; z < 4; z++) drawLine(color, 3, 0, z, 0, y, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
for (int x = 0; x < 3; x++) {
|
||||
for (int z = 0; z < 4; z++) drawLine(color, 3, 0, z, x, 3, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
case 1:
|
||||
for (int x = 3; x > 0; x--) {
|
||||
for (int z = 0; z < 4; z++) drawLine(color, 0, 3, z, x, 0, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
for (int x = 3; x > 0; x--) {
|
||||
for (int y = 0; y < 4; y++) drawLine(color, 3, y, 3, x, y, 0);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
for (int z = 0; z < 3; z++) {
|
||||
for (int y = 0; y < 4; y++) drawLine(color, 3, y, 3, 0, y, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
case 2:
|
||||
for (int x = 0; x < 3; x++) {
|
||||
for (int y = 0; y < 4; y++) drawLine(color, 0, y, 0, x, y, 3);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
for (int z = 3; z > 0; z--) {
|
||||
for (int x = 0; x < 4; x++) drawLine(color, x, 3, 3, x, 0, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
for (int y = 0; y < 3; y++) {
|
||||
for (int x = 0; x < 4; x++) drawLine(color, x, 3, 3, x, y, 0);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
delay(animationSpeed);
|
||||
}
|
||||
case 3:
|
||||
for (int z = 3; z > 0; z--) {
|
||||
for (int y = 0; y < 4; y++) drawLine(color, 0, y, 0, 3, y, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
case 4:
|
||||
for (int z = 0; z < 3; z++) {
|
||||
for (int x = 0; x < 4; x++) drawLine(color, x, 0, 0, x, 3, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
case 5:
|
||||
for (int y = 3; y > 0; y--) {
|
||||
for (int x = 0; x < 4; x++) drawLine(color, x, 0, 0, x, y, 3);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
case 6:
|
||||
for (int y = 0; y < 3; y++) {
|
||||
for (int z = 0; z < 4; z++) drawLine(color, 3, 0, z, 0, y, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
case 7:
|
||||
for (int x = 0; x < 3; x++) {
|
||||
for (int z = 0; z < 4; z++) drawLine(color, 3, 0, z, x, 3, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
case 8:
|
||||
for (int x = 3; x > 0; x--) {
|
||||
for (int y = 0; y < 4; y++) drawLine(color, 3, y, 3, x, y, 0);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
case 9:
|
||||
for (int z = 0; z < 3; z++) {
|
||||
for (int y = 0; y < 4; y++) drawLine(color, 3, y, 3, 0, y, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
case 10:
|
||||
for (int z = 3; z > 0; z--) {
|
||||
for (int x = 0; x < 4; x++) drawLine(color, x, 3, 3, x, 0, z);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase++;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
|
||||
case 11:
|
||||
for (int y = 0; y < 3; y++) {
|
||||
for (int x = 0; x < 4; x++) drawLine(color, x, 3, 3, x, y, 0);
|
||||
flushBuffer();
|
||||
clearBuffer();
|
||||
//delay(animationSpeed);
|
||||
planarCase = 0;
|
||||
currentTimer = 0;
|
||||
timerReset = false;
|
||||
}
|
||||
color = nextColor(color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue