Advertisement
zik

CIRC-02 code

zik
Sep 27th, 2011
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. const int numTypes = 6;
  2.  
  3. int state0[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x08, 0x04, 0x02};
  4. int state1[] = {0x15, 0x0a};
  5. int state2[] = {0x1e, 0x1d, 0x1b, 0x17, 0x0f, 0x17, 0x1b, 0x1d};
  6. int state3[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
  7. 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f};
  8. int state4[] = {0x01, 0x02, 0x04, 0x08, 0x10,
  9. 0x11, 0x12, 0x14, 0x18,
  10. 0x19, 0x1a, 0x1c,
  11. 0x1d, 0x1e,
  12. 0x1f,
  13. 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00};
  14. int state5[] = {0x00};
  15.  
  16. int *states[numTypes] = {state0, state1, state2, state3, state4, state5};
  17. int stateSize[numTypes] = {8, 2, 8, 32, 24, 1};
  18.  
  19. int stateType = 0;
  20. int stateIdx = 0;
  21.  
  22. void setup() {
  23. Serial.begin(9600);
  24. pinMode(13, INPUT);
  25. pinMode(8, OUTPUT);
  26. pinMode(9, OUTPUT);
  27. pinMode(10, OUTPUT);
  28. pinMode(11, OUTPUT);
  29. pinMode(12, OUTPUT);
  30. }
  31.  
  32. // Get a debounced button press
  33. bool isPressed(void)
  34. {
  35. if (digitalRead(13))
  36. {
  37. while(1)
  38. {
  39. delay(100);
  40. if (!digitalRead(13))
  41. return true;
  42. }
  43. }
  44.  
  45. return false;
  46. }
  47.  
  48. void loop() {
  49. while (1)
  50. {
  51. for (int iOff = 0; iOff < 5; iOff++)
  52. {
  53. if (!((1<<iOff) & states[stateType][stateIdx]))
  54. digitalWrite(8+iOff, LOW);
  55. }
  56. for (int iOn = 0; iOn < 5; iOn++)
  57. {
  58. if ((1<<iOn) & states[stateType][stateIdx])
  59. digitalWrite(8+iOn, HIGH);
  60. }
  61. stateIdx = (stateIdx+1) % stateSize[stateType];
  62.  
  63. delay(100);
  64. if (isPressed())
  65. break;
  66. }
  67.  
  68. stateType = (stateType+1) % numTypes;
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement