Decode Status Register into Human-Readable Flags

Code

#include <stdio.h>
#include <stdint.h>

// Function to decode and print enabled flags
void decodeStatus(uint8_t status_reg) {
    const char *flags[] = {
            "Power On",       // Bit 0
                    "Error",          // Bit 1
                            "Tx Ready",       // Bit 2
                                    "Rx Ready",       // Bit 3
                                            "Overheat",       // Bit 4
                                                    "Undervoltage",   // Bit 5
                                                            "Timeout",        // Bit 6
                                                                    "Reserved"        // Bit 7
                                                                        };

                                                                            for (int i = 0; i < 8; i++) {
                                                                                    if (status_reg & (1 << i)) {
                                                                                                printf("%s\n", flags[i]);
                                                                                                        }
                                                                                                            }
                                                                                                            }

                                                                                                            int main() {
                                                                                                                uint8_t status_reg;
                                                                                                                    scanf("%hhu", &status_reg);

                                                                                                                        decodeStatus(status_reg);

                                                                                                                            return 0;
                                                                                                                            }

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

13

Expected Output

Power On Tx Ready Rx Ready