All pastes #2104042 Raw Edit

Stuff

public text v1 · immutable
#2104042 ·published 2012-01-19 12:05 UTC
rendered paste body
//global because it's bedtime and I CBA to work out how to pass it around correctly,
int leds[4]; //int leds[] = {0, 1, 2, 3}; //array of LED pins

void LED_SET(int pin, boolean x) { //takes a pin and boolean and puts the pin HIGH or LOW
  switch(x) {                      //used to switch LEDS on or off
    case 0:
      digitalWrite(pin, LOW);
      break;
    case 1:
      digitalWrite(pin, HIGH);
      break;
    default:
      blink();
  }
}

void updateleds() {
  for(int i=0;i<4;i++) {
    LED_SET(i, leds[i]);
  }
}

void ranum() {
  delay(random(30, 1001));
}

void blink() {
  digitalWrite(13, HIGH);
  ranum();
  digitalWrite(13, LOW);
  ranum();
}

void setup() {
  pinMode(13, OUTPUT); //set pin 13 as output
  pinMode(0, OUTPUT);  //etc
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  randomSeed(analogRead(0)); //gives it something to generate random numbers from
}

void loop() {
  unsigned int tmp = 1;
  unsigned int num = 1;
  while(1) {
    if(num==16)
      num=0;
    for(int i=28;i<32;i++) {  // I have no idea how this bit works, but (apparently) it does.
        tmp=num<<i;           // /*
        tmp=tmp>>31;          // Wizardry
        leds[i-28]=tmp;       // */
        updateleds();         // It was written by Sam Townsend
    }
    num++;
    delay(500);
  }
}