16 비트 SPI 메시지를 사용하는 DAC 칩용 SPI 드라이버를 작성하고 있습니다 ... 출력을 나타내는 값은 비트 11에서 비트 4까지입니다 8 비트 DAC). 나는이 마스크를 썼다 그러나 나는 다른 비트에 영향을주지 않고 데이터를 업데이트 달성하는 방법을 모르고에게이 없다 :다른 비트에 영향을 미치지 않고 uint16_t를 uint16_t에 넣는 방법
#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
}
왜 당신이 SPI 데이터 레지스터의 일부가 아니라 그것 모두를 쓸 것인가? 그건 말이 안되요. 복잡한 "데이지 체인"하드웨어가 있습니까? – Lundin
@Lundin 다른 설정 비트도 있습니다 (비트 15-12), 단일 비트 일 때 설정할 수 있습니다. 문제는 8 비트 DAC 값을 11에서 4로 변경하는 것입니다. – DEKKER