/* *@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; } }