Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h>
- #include <avr/pgmspace.h>
- 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};
- //00110101000000011110000011001010, 00000110000101000110100000101010, 01101000011001111001000001010010
- unsigned long led1[3] = {889315530, 102000682, 1751617618};
- unsigned long led2[3] = {3405651765, 4192966613, 1271674796};
- unsigned long led1Frame = 0;
- unsigned long led2Frame = 0;
- unsigned long seconds_so_far = 0;
- unsigned long prior = 0;
- unsigned long current_step = 0;
- unsigned long current_frame = 0;
- unsigned long step_in_frame = 0;
- unsigned long led1Disable = 0;
- unsigned long led2Disable = 0;
- unsigned int led1Pin = 10;
- unsigned int led2Pin = 9;
- void delaySeconds(unsigned long duration){
- for(duration; duration > 0UL; duration -= 2UL){
- delay(2000UL);
- seconds_so_far += 1;
- }
- }
- void setup(){
- // put your setup code here, to run once:
- Serial.begin(9600);
- pinMode(led1Pin, OUTPUT);
- pinMode(led2Pin, OUTPUT);
- digitalWrite(led1Pin, LOW);
- digitalWrite(led2Pin, LOW);
- }
- void loop(){
- // put your main code here, to run repeatedly:
- if (seconds_so_far == prior + delays[current_step]){
- if (bitRead(led1[current_frame], step_in_frame) == 1UL){
- digitalWrite(led1Pin, HIGH);
- led1Disable = seconds_so_far + 10UL;
- Serial.println("1 ON");
- }
- if (bitRead(led2[current_frame], step_in_frame) == 1UL){
- digitalWrite(led2Pin, HIGH);
- led2Disable = seconds_so_far + 10UL;
- Serial.println("2 ON");
- }
- current_step++;
- if (step_in_frame == 32UL){
- step_in_frame = 0UL;
- current_frame += 1UL;
- current_step += 1UL;
- }
- if (current_step == 93UL){
- step_in_frame = 0UL;
- current_frame = 0UL;
- current_step = 0UL;
- prior = 0;
- seconds_so_far = 0;
- }
- }
- if (led1Disable == seconds_so_far){
- digitalWrite(led1Pin, LOW);
- led1Disable = 0UL;
- Serial.println("1 OFF");
- }
- if (led2Disable == seconds_so_far){
- digitalWrite(led2Pin, LOW);
- led2Disable = 0UL;
- Serial.println("2 OFF");
- }
- delaySeconds(delays[current_step]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement