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.

[参考译文] TMS570LS1227:ADC 中 while 循环的超时

Guru**** 2482225 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS1227

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/725058/tms570ls1227-timeout-for-while-loops-in-adc

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

您好!

我已经使用 HALCoGen 工具为 TMS570LS1227生成 ADC 驱动程序代码。

根据我们的要求、我们需要具有 while 循环的超时。

请建议您如何确定以下内容的大致执行时间:

1)

/**-等待缓冲区初始化完成*/
/*SAFETYMCUSW 28 D MR:NA "硬件状态位读取检查"*/
while (((adcREG1->BNDEND & 0xFFFFFF0000U)>> 16U)!= 0U)

}/*等待*/

2)

/*... 等待并读取转换计数*/
while ((adcIsConversionComplete (adcREG1、adcGROUP1))==0);

谢谢、此致。

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

    请参阅下面嵌入的我的评论。

    1)

    /**-等待缓冲区初始化完成*/
    /*SAFETYMCUSW 28 D MR:NA "硬件状态位读取检查"*/
    while (((adcREG1->BNDEND & 0xFFFFFF0000U)>> 16U)!= 0U)

    }/*等待*/

    >> HALCoGen 生成代码、其中存储器初始化作为启动例程的一部分执行。 这包括所有外设存储器、包括两个 ADC RAM。 因此、在代码执行到达此 while 循环时、ADC 自动初始化已经完成。 按照这个典型的代码序列、这个循环根本不需要任何时间-第一次读取本身会导致执行从循环中退出。

    2)

    /*... 等待并读取转换计数*/
    while ((adcIsConversionComplete (adcREG1、adcGROUP1))==0);

    >>触发转换的时间到数据表的 ADC 时序部分中指定的转换完成时间。 采样时间可由应用编程。 转换时间为12个 ADCLK 周期或10个 ADCLK 周期、具体取决于您选择的是12位还是10位转换。 因此、每个通道的总等待时间将是采样时间+转换时间。 在任何组中、一个通道的转换结束与下一个通道的采样开始之间也有4个 VCLK 周期。

    此致、
    Sunil