Skip to content
Snippets Groups Projects
Select Git revision
  • e5cfee6a5730c9052d624eb0a6317d03c8c60f5b
  • main default protected
2 results

4_Bit_Binary_Counter.c

Blame
  • 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;}
    
    
    
    
        }
    }