Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. #include <avr/io.h>
  2. #include <avr/pgmspace.h>
  3. unsigned int delays[95] = {60, 30, 300, 390, 1200, 1140, 1170, 60, 1260, 180, 1170, 630, 450, 420, 180, 150, 60, 180, 120, 150, 30, 120, 60, 180, 60, 180, 510, 3510, 360, 6240, 30, 720, 390, 60, 150, 120, 630, 90, 780, 810, 300, 2790, 1590, 300, 30, 30, 270, 360, 30, 30, 60, 150, 540, 2910, 30, 150, 30, 30, 120, 30, 30, 30, 5010, 120, 1170, 660, 2790, 480, 2100, 240, 2520, 1110, 1170, 60, 150, 4530, 300, 30, 2460, 150, 30, 8160, 8250, 1770, 10290, 30, 35910, 7890, 8190, 6000, 1290, 90, 30, 30, 255};
  4. //00110101000000011110000011001010, 00000110000101000110100000101010, 01101000011001111001000001010010
  5. unsigned long led1[3] = {889315530, 102000682, 1751617618};
  6.  
  7. unsigned long led2[3] = {3405651765, 4192966613, 1271674796};
  8.  
  9. unsigned long led1Frame = 0;
  10. unsigned long led2Frame = 0;
  11.  
  12. unsigned long seconds_so_far = 0;
  13. unsigned long prior = 0;
  14. unsigned long current_step = 0;
  15. unsigned long current_frame = 0;
  16.  
  17. unsigned long step_in_frame = 0;
  18.  
  19. unsigned long led1Disable = 0;
  20. unsigned long led2Disable = 0;
  21.  
  22. unsigned int led1Pin = 10;
  23. unsigned int led2Pin = 9;
  24.  
  25. void delaySeconds(unsigned long duration){
  26. for(duration; duration > 0UL; duration -= 2UL){
  27. delay(2000UL);
  28. seconds_so_far += 1;
  29. }
  30. }
  31.  
  32. void setup(){
  33. // put your setup code here, to run once:
  34. Serial.begin(9600);
  35. pinMode(led1Pin, OUTPUT);
  36. pinMode(led2Pin, OUTPUT);
  37. digitalWrite(led1Pin, LOW);
  38. digitalWrite(led2Pin, LOW);
  39.  
  40. }
  41.  
  42. void loop(){
  43. // put your main code here, to run repeatedly:
  44. if (seconds_so_far == prior + delays[current_step]){
  45. if (bitRead(led1[current_frame], step_in_frame) == 1UL){
  46. digitalWrite(led1Pin, HIGH);
  47. led1Disable = seconds_so_far + 10UL;
  48. Serial.println("1 ON");
  49. }
  50. if (bitRead(led2[current_frame], step_in_frame) == 1UL){
  51. digitalWrite(led2Pin, HIGH);
  52. led2Disable = seconds_so_far + 10UL;
  53. Serial.println("2 ON");
  54. }
  55. current_step++;
  56.  
  57. if (step_in_frame == 32UL){
  58. step_in_frame = 0UL;
  59. current_frame += 1UL;
  60. current_step += 1UL;
  61. }
  62. if (current_step == 93UL){
  63. step_in_frame = 0UL;
  64. current_frame = 0UL;
  65. current_step = 0UL;
  66. prior = 0;
  67. seconds_so_far = 0;
  68. }
  69.  
  70.  
  71. }
  72. if (led1Disable == seconds_so_far){
  73. digitalWrite(led1Pin, LOW);
  74. led1Disable = 0UL;
  75. Serial.println("1 OFF");
  76.  
  77. }
  78. if (led2Disable == seconds_so_far){
  79. digitalWrite(led2Pin, LOW);
  80. led2Disable = 0UL;
  81. Serial.println("2 OFF");
  82. }
  83. delaySeconds(delays[current_step]);
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement