Select Git revision
4_Bit_Binary_Counter.c
4_Bit_Binary_Counter.c 1.92 KiB
#include "pico/stdlib.h"
const uint decrementButton = 21;
const uint incrementButton = 22;
const uint resetButton = 20;
const uint bitLedOne= 5;
const uint bitLedTwo = 4;
const uint bitLedThree = 3;
const uint bitLedFour = 2;
int main() {
gpio_init(decrementButton);
gpio_init(incrementButton);
gpio_init(resetButton);
gpio_init(bitLedOne);
gpio_init(bitLedTwo);
gpio_init(bitLedThree);
gpio_init(bitLedFour);
gpio_set_dir(decrementButton, GPIO_IN);
gpio_set_dir(incrementButton, GPIO_IN);
gpio_set_dir(resetButton, GPIO_IN);
gpio_set_dir(bitLedOne, GPIO_OUT);
gpio_set_dir(bitLedTwo, GPIO_OUT);
gpio_set_dir(bitLedThree, GPIO_OUT);
gpio_set_dir(bitLedFour, GPIO_OUT);
bool incrementB;
bool decrementB;
bool resetB;
int counter = 0;
while (true) {
if((counter % 2) > 0) {gpio_put(bitLedOne,1);} else {gpio_put(bitLedOne,0);}
if((counter % 4) > 1) {gpio_put(bitLedTwo,1);} else {gpio_put(bitLedTwo,0);}
if((counter % 8) > 3) {gpio_put(bitLedThree,1);} else {gpio_put(bitLedThree,0);}
if((counter % 16) > 7) {gpio_put(bitLedFour,1);} else {gpio_put(bitLedFour,0);}
if(gpio_get(incrementButton) == 0 && incrementB) {
counter++;
incrementB = false;
} else if(gpio_get(incrementButton) == 1){
incrementB = true;
}
if(gpio_get(decrementButton) == 0 && decrementB) {
counter--;
decrementB = false;
} else if(gpio_get(decrementButton) == 1){
decrementB = true;
}
if(gpio_get(resetButton) == 0 && resetB) {
counter = 0;
resetB = false;
} else if(gpio_get(resetButton) == 1){
resetB = true;
}
if (counter > 15) {counter = 0;}
if (counter < 0) {counter = 15;}
}
}