我正在为使用16位SPI消息的DAC芯片编写SPI驱动程序...表示输出的值从第11位到第4位(一个8位DAC)。我已经编写了以下掩码,但我不知道如何在不影响其他位的情况下更新数据:
#define MCP4901_SPI_MASK_DATA 0x0FF0
//So data mask in binary is 0000 1111 1111 0000
extern uint16_t mcpA;
static inline void mcpSetData(uint16_t* mcp, uint8_t value) {
//????
*mcp =| value & MCP4901_SPI_MASK_DATA; //NOT WORKING
}