主题中讨论的其他器件: ADS7066
您好!
我们将评估 ADS9224R。 遗憾的是、不支持 C 代码、也不支持任何其他代码。
我们首先设计了 SPI 的标准函数。 接下来、我们将读取和写入寄存器。
根据数据表、我们首先必须发送命令读取或写入地址和数据。
我们实现了以下功能:
void vSendCommand(char cOPCode, char cAddr, char cData) { int CodeToTransfer = 0, digit; volatile bool myBit = false; SPI_CS_Low; SPI_CONVST_High; CodeToTransfer = (cOPCode << 12) | (cAddr << 8) | cData; digit = 0; do{ myBit = CHECKBIT(CodeToTransfer,digit); _NOP(); if (myBit){ SPI_SDI_High; //SDA high } else { SPI_SDI_Low; //SDA low } SPI_SCK_High; //Clock high SPI_SCK_Low; //Clock low _NOP(); }while(++digit < 16); SPI_CONVST_Low; SPI_CS_High; _NOP(); }
到目前为止这是正确的吗?
现在、我们要从相应的寄存器中读取数据。 我们如何做到这一点。 我们曾考虑过一个函数"unsigned char ucRegisterData()"。
其中、我们监控 RDY 引脚、一旦数据就绪、我们就会读取它。 不幸的是、我们被困在这里。 我们如何获取相应寄存器的数据。
如果有人能帮助我们提供 C 代码示例以跳过第一个障碍、那会很好。