TI中文支持网
TI专业的中文技术问题搜集分享网站

各位大师,有人了解过电机控制FCL例程里面ADC初始化的程序吗,帮忙解释一下,谢谢

void FCL_initADC_3In(MOTOR_Vars_t *gsMC, const uint32_t adcBaseW,
const uint32_t adcResultBaseU, ADC_PPBNumber adcU_PPBNum,
const uint32_t adcResultBaseV, ADC_PPBNumber adcV_PPBNum,
const uint32_t adcResultBaseW, ADC_PPBNumber adcW_PPBNum )
{
uint16_t adcPPBCurU, adcPPBCurV, adcPPBCurW;

adcPPBCurU = (uint16_t)(ADC_PPBxRESULT_OFFSET_BASE +(uint16_t)adcU_PPBNum * 2);
adcPPBCurV = (uint16_t)(ADC_PPBxRESULT_OFFSET_BASE +(uint16_t)adcV_PPBNum * 2);
adcPPBCurW = (uint16_t)(ADC_PPBxRESULT_OFFSET_BASE +(uint16_t)adcW_PPBNum * 2);

gsMC->curA_PPBRESULT = adcResultBaseU + adcPPBCurU;
gsMC->curB_PPBRESULT = adcResultBaseV + adcPPBCurV;
gsMC->curC_PPBRESULT = adcResultBaseW + adcPPBCurW;

gsMC->curA_resultBase = adcResultBaseU;
gsMC->curB_resultBase = adcResultBaseV;
gsMC->curC_resultBase = adcResultBaseW;

gsMC->curA_PPBNumber = adcU_PPBNum;
gsMC->curB_PPBNumber = adcV_PPBNum;
gsMC->curC_PPBNumber = adcW_PPBNum;

gsMC->AdcIntFlag = (union ADCINTFLG_REG *)(adcBaseW + ADC_O_INTFLG);

return;
}

Annie Liu:

这些都是指针变量。 指针被广泛用于使程序模块化。 由于它们都具有相同的结构,因此可以在一处进行基本的寄存器地址定义,然后使用这些指针变量将其传递给各种函数。

adcPPBCurU ===> ADC 连接相电流 U 的 PPB 地址读取

gsMC->curA_PPBRESULT ===> 保存当前 A PPBRESULT 寄存器地址的指针

gsMC->curA_resultBase ===> 持有与相电流 A 相关的结果寄存器基地址的指针

gsMC->curA_PPBNumber ===> 存储与相电流 A 相关的 ADC 的 PPB 编号

,

futian jishu:

您说的指针这些我都明白,我需要知道的是:

(1)这里的表达式乘以2,是什么意思呢

adcPPBCurU = (uint16_t)(ADC_PPBxRESULT_OFFSET_BASE +(uint16_t)adcU_PPBNum * 2);adcPPBCurV = (uint16_t)(ADC_PPBxRESULT_OFFSET_BASE +(uint16_t)adcV_PPBNum * 2);adcPPBCurW = (uint16_t)(ADC_PPBxRESULT_OFFSET_BASE +(uint16_t)adcW_PPBNum * 2);

 (2)因为FOC控制,所需要的输入为三相电流,是由上面的那些量转换得到的呢?

 (3)上面的程序是FCL(快速电流环路)里面的,我自己用寄存器配置好的那些底层函数,是否能够利用FCL库函数呢,怎么更好的对接这一部分呢?

,

Annie Liu:

1) 这个寄存器大小是两个内存位置,所以下一个寄存器地址将在这两个之后。

2) &3) 是的,可以。 源代码都是开放的,您需要编辑函数来解决这个问题。我们没有任何注释可供参考。 由于源代码都是开放的,您能够根据自己的喜好对其进行调整。

,

futian jishu:

您好!请问TI公司有关于电机库函数的指导文档吗,个人感觉库函数较为晦涩难懂,要是有库文件的指导文档,能否发我一份,谢谢!

,

Annie Liu:

抱歉,没有这样的文档。

,

futian jishu:

好的,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 各位大师,有人了解过电机控制FCL例程里面ADC初始化的程序吗,帮忙解释一下,谢谢
分享到: 更多 (0)