fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. #define MCP4901_SPI_MASK_DATA 0x0FF0
  5.  
  6. static inline void mcpSetData(uint16_t* mcp, uint8_t value) {
  7. *mcp &= ~MCP4901_SPI_MASK_DATA; // Clear out the middle bits
  8. *mcp |= ((uint16_t)value) << 4; // Put in the value in the middle
  9. }
  10.  
  11. int main(void) {
  12. uint16_t m = 0xd12d;
  13. mcpSetData(&m, 0xea);
  14. printf("%0x\n", m);
  15. return 0;
  16. }
  17.  
Success #stdin #stdout 0s 4396KB
stdin
Standard input is empty
stdout
dead