11. Decode Status Register into Human-Readable Flags

Discussions1
Log in to post comments and replies.
You
Loading editor...
quoctoanahihi123
quoctoanahihi123
Jun 09 2026

#include <stdio.h>

#include <stdint.h>


 

void decode_status(uint8_t status_reg) {

    // Your logic here

    const char* status_flag_name[]={

        "Power On",

        "Error",

        "Tx Ready",

        "Rx Ready",

        "Overheat",

        "Undervoltage",

        "Timeout",

        "Reserved"

    };


 

    for (int i=0 ; i < 8 ; i++){

        if (status_reg & (1<<i)){

            printf("%s\n",status_flag_name[i]);

        }

    }

}


 

int main() {

    uint8_t reg;

    scanf("%hhu", &reg);

    decode_status(reg);

    return 0;

}

+2