主题中讨论的其他器件: 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 代码示例以跳过第一个障碍、那会很好。