Set Baud Rate Field in Control Register

Code

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

// CG

uint32_t set_baud_rate(uint32_t reg, uint8_t baud)
{
    /* Mask for 4-bit baud field at bits 8–11 */
    uint32_t BAUD_MASK = (0xFU << 8);

    /* Clear existing baud bits, then insert new baud value */
    reg = (reg & ~BAUD_MASK) | ((baud & 0xF) << 8);

    return reg;
}

int main(void)
{
    uint32_t reg;
    uint8_t baud;

    scanf("%u %hhu", &reg, &baud);
    printf("%u", set_baud_rate(reg, baud));

    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

0 10

Expected Output

2560