77 lines
1.1 KiB
C++
77 lines
1.1 KiB
C++
/*
|
|
*@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;
|
|
}
|
|
}
|