|
|
@@ -0,0 +1,76 @@ |
|
|
|
/* |
|
|
|
*@author James McKenzie |
|
|
|
*@lang C89 Based |
|
|
|
*@contact lunarised@outlook.com |
|
|
|
*/ |
|
|
|
int i; |
|
|
|
void setup() { |
|
|
|
pinMode(10, OUTPUT); |
|
|
|
pinMode(11, OUTPUT); |
|
|
|
pinMode(12, OUTPUT); |
|
|
|
pinMode(13, OUTPUT); |
|
|
|
pinMode(0, INPUT_PULLUP); |
|
|
|
pinMode(1, INPUT_PULLUP); |
|
|
|
i = 0; |
|
|
|
} |
|
|
|
|
|
|
|
void loop() { |
|
|
|
checkOverflow(i); |
|
|
|
bitCheck(i); |
|
|
|
inCheck(); |
|
|
|
} |
|
|
|
/* |
|
|
|
* Checks for button inputs on pins 0 and 1 |
|
|
|
*/ |
|
|
|
void inCheck(){ |
|
|
|
if (digitalRead(0)==LOW){ |
|
|
|
i++; |
|
|
|
delay(250); |
|
|
|
} |
|
|
|
if (digitalRead(1)==LOW){ |
|
|
|
i--; |
|
|
|
delay(250); |
|
|
|
} |
|
|
|
} |
|
|
|
/* |
|
|
|
* Takes an int and sets leds on and off accordingly |
|
|
|
* @param i The current value to be displayed |
|
|
|
*/ |
|
|
|
void bitCheck(int i){ |
|
|
|
if (i & 1){ |
|
|
|
digitalWrite(13, HIGH); |
|
|
|
} |
|
|
|
else{ |
|
|
|
digitalWrite(13, LOW); |
|
|
|
} |
|
|
|
if (i & 2){ |
|
|
|
digitalWrite(12, HIGH); |
|
|
|
} |
|
|
|
else{ |
|
|
|
digitalWrite(12, LOW); |
|
|
|
} |
|
|
|
if (i & 4){ |
|
|
|
digitalWrite(11, HIGH); |
|
|
|
} |
|
|
|
else{ |
|
|
|
digitalWrite(11, LOW); |
|
|
|
} |
|
|
|
if (i & 8){ |
|
|
|
digitalWrite(10, HIGH); |
|
|
|
} |
|
|
|
else{ |
|
|
|
digitalWrite(10, LOW); |
|
|
|
} |
|
|
|
} |
|
|
|
/* |
|
|
|
* Checks to make sure the number displayed doesnt overflow |
|
|
|
* @param i The number to check overflow |
|
|
|
*/ |
|
|
|
void checkOverflow(int i){ |
|
|
|
if (i == 16){ |
|
|
|
i = 0; |
|
|
|
} |
|
|
|
if (i == -1){ |
|
|
|
i = 15; |
|
|
|
} |
|
|
|
} |