[ create a new paste ] login | about

Link: http://codepad.org/NSoCmm8z    [ raw code | fork ]

8l04n1kbpy25xjvg - C++, pasted on Aug 9:
const int ledA = 9;
const int ledB = 10;
const int ledC = 11;

int i = 0;
volatile int val = 0;

void setup() {
	pinMode(ledA, OUTPUT);
	pinMode(ledB, OUTPUT);
	pinMode(ledC, OUTPUT);
	attachInterrupt(0, changesw, RISING);
}

void changesw() {
	detachInterrupt(0);
	pinMode(2, INPUT);
	while (digitalRead(2) == 1) {}
	attachInterrupt(0, changesw, RISING);
	val++;
	if(val > 3) val = 0;
}

void loop() {
	if (val == 1) {
		detachInterrupt(0);
		for (i = 0; i < 256; i++) {
			analogWrite(ledA, i);
			delay(2);
		}
		for (i = 0; i < 256; i++) {
			analogWrite(ledB, i);
			delay(2);
		}
		val = 2;
		attachInterrupt(0, changesw, RISING);
	}
	if (val == 2){
		detachInterrupt(0);
		for (i = 0; i < 256; i++) {
			analogWrite(ledC, i);
			delay(2);
		}
		delay(200);
		for (i = 255; i > -1; i--) {
			analogWrite(ledC, i);
			delay(2);
		}
		delay(200);
		attachInterrupt(0, changesw, RISING);
	}
	if (val == 3) {
		detachInterrupt(0);
		for (i = 0; i < 256; i++) {
			analogWrite(ledC, i);
			delay(2);
		}
		for (i = 255; i > -1; i--) {
			analogWrite(ledA, i);
			analogWrite(ledB, i);
			analogWrite(ledC, i);
			delay(2);
		}
		delay(1000);
		val = 0;
		attachInterrupt(0, changesw, RISING);
	}
}


Create a new paste based on this one


Comments: