This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADC6120 Pure Path 控制台函数调用

Guru**** 2382600 points
Other Parts Discussed in Thread: TLV320ADC6120
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/991218/adc6120-pure-path-console-function-call

器件型号:ADC6120EVM-PDK
主题中讨论的其他器件:TLV320ADC6120

 由 PurePath Console 3生成的示例 C 代码不起作用。  以下是代码: 它由 PurePath Console 3生成。

#pragma ANON_UNION //我添加了行以使其正常工作
typedef unsigned char cfg_u8;
typedef union{
结构{
CFG_u8偏移;
CFG_u8值;
};
结构{
cfg_u8命令;
CFG_u8参数;
};
} cfg_reg;

#define CFG_meta_switch (255)
#define CFG_META_DELAY (254)
#define CFG_META_BURST (253)


/*通过 TWI 将寄存器写入 ADC 板。 *
void transmit 寄存器(cfg_reg *r、int n)

int i = 0;
while (i < n){
switch (r[i].command){
CFG_META_SWITCHCH 案例:
//用于传统应用程序。 被忽略。
中断;
案例 CFG_META_DELAY:
nrf_delay_ms (r[i].param);
中断;
案例 CFG_META_BURST://现在未使用。 必须修改 i2c 写入函数才能使用突发模式。 数据很小、不应产生太大的差异。
I2C_WRITE ((unsigned char *)&r[i+1]、r[i].param);
i +=(r[i].param /2)+1;
中断;
默认值:
I2C_WRITE ((unsigned char *)&r[i]、2);
中断;

i++;


//以下是用于对 TI ADC 6120进行编程的 I2C 代码。
CFG_reg 寄存器[]={
#define 校验和(67)
//由 ADCx120EVM-SW v3.0.5生成
// TLV320ADC6120器件配置
//----------------------------------
//重置
//----------------------------------
//选择第0页
{ 0x00、0x00 }、
//重置设备
{ 0x01、0x01 }、
// 1ms 延迟

Transmit _registers (registers、sizeof (registers)/sizeof (register[0]));   //此函数调用来自 PurePath Console 3中的示例

C 编译器与 上述函数调用中的" register[0]"不同。  C 编译器抱怨它不 是"下标值不是数组指针或向量"。

Transmit _registers (&registers、sizeof (registers)/sizeof (registers.command)); -此函数调用有效(仅用于测试)、但我不认为 sizeof (registers.command)是正确的元素。 我不明白

typedonion 和 cfg_reg 寄存器结构;因此我不知道如何找到第一个元素的大小-(寄存器[0])。   调用 Transmit 寄存器函数的正确方法是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我通过将  cfg_reg 寄存 器[]=定义移动到声明 union 的函数而不是在头文件中定义 union 来解决该问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raymond、

    很高兴您能让它正常工作、感谢您分享您的问题解决方案!

    最棒的

    Zak