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.

[参考译文] CCS/TM4C1290NCZAD:TM4C1290NCZAD

Guru**** 2511985 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/860379/ccs-tm4c1290nczad-tm4c1290nczad

器件型号:TM4C1290NCZAD

工具/软件:Code Composer Studio

采样频率测量值被限制在1MHz

我想将采样频率提高到2MHz

我尝试了命令

ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_FULL、1);

但我遇到编译器无法识别函数的错误

我检查了 ADC.C 文件、没有这样的函数

我正在使用 SW-DK-TM4C129X-2.0.1.11577.exe

它出现在用户手册中,但不是 ADC.C!!!

 

我尝试通过实现它

GetSysCtlClockFreq_var= SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_main | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、SYS_CLK_FREQ);

HWREG (ADC0_BASE + ADC_O_PC)|= 0x7;//全转换速率

HWREG (ADC0_BASE + ADC_O_CC)=1;

BAT 采样频率仍然限制在1MHz

谢谢

哈姆  

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

    您好、Haim、

    [引用用户="Haim rozenboim"]

    我尝试了命令

    ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_FULL、1);

    但我遇到编译器无法识别函数的错误

    我检查了 ADC.C 文件、没有这样的函数

    我正在使用 SW-DK-TM4C129X-2.0.1.11577.exe

    它出现在用户手册中,但不是 ADC.C!!!

    [/报价]

    您可以下载最新的 TivaWare 版本2.1.4.178并重试吗? 您还会发现此帖子对您有所帮助。  https://e2e.ti.com/support/microcontrollers/other/f/908/p/690227/2545036#2545036

    //
    //
    //! 设置 ADC 的时钟配置。
    //!
    //! \param ui32Base 是要配置的 ADC 的基址、必须
    //! 始终为\b ADC0_BASE。
    //! \param ui32Config 是\b ADC_CLOCK _SRC_和
    //! b 用于配置 ADC 时钟输入的 ADC_CLOCK_RATE 值。
    //! param ui32ClockDiv 是
    //选择的时钟的输入时钟分频器! ADC_CLOCK _SRC 值。
    //!
    //! 此函数用于配置 ADC 模块的输入时钟。
    //! 时钟配置在 ADC 单元之间共享、因此必须
    //! 始终为\b ADC0_BASE。 ui32Config 值是一
    个//!的逻辑 OR 和其中一个已定义
    的 ADC_CLOCK SRC_RATE 值//! 内容。 b ADC_CLOCK _SRC_*值决定 ADC 的输入时钟。
    //! 并非所有器件都提供所有值、因此请查看器件数据表
    //! 以确定值配置选项。 无论来源如何、
    //! TM4C123x 器件的最终频率必须为16MHz、TM4C129x 器件
    的最终频率//! 分频后必须介于16MHz 和32MHz 之间。
    //!
    //! 注意对于 TM4C123x 器件、如果 PLL 被启用、PLL/25被用作
    //! ADC 时钟、除非指定了 ADC_CLOCK_SRC_PIOSC。 如果 PLL 为
    //! 禁用时、除非 ADC_CLOCK SRC_PIOSC
    //! 指定的。
    //!
    //! -\b ADC_CClock_SRC_PLL -主 PLL 输出(仅限 TM4x129类)。
    //! -\b ADC_CLOCK SRC_PIOSC - 16 MHz 的内部 PIOSC。
    //! -\b ADC_CLOCK SRC_ALTCLK -系统控制中的 ALTCLK 输出
    //! 模块(仅限 TM4x129类)。
    //! -\b ADC_CLOCK SRC_MOSC -外部 MOSC (仅限 TM4x129类)。
    //!
    //! b ADC_CLOCK _RATE 值控制将样本提供回
    //! 应用。 这些值如下:
    //!
    //! -\b ADC_CLOCK_RATE _ FULL -所有样本。
    //! -\b ADC_CLOCK_RATE 一半-每隔一个采样。
    //! -\b ADC_CLOCK_RATE 四分之一-每四个样本一次。
    //! -\b adc_clock_rate _八分之一-每两个样本一次。
    //!
    //! ui32ClockDiv 参数允许将较高的频率向下除
    //! ADC 的有效范围。 此参数通常仅用于
    //! b ADC_CClock_SRC_PLL 选项、因为它是唯一可以是
    //的时钟值! 以使用分压器。 实际值范围
    //! 从1到64。
    //!
    //! \b 示例:ADC 时钟配置
    //!
    //! 逐字记录
    //!
    //! //
    //! //将 ADC 配置为使用 PIOSC 除以1 (16MHz)、并在
    //! //速率的一半。
    //! //
    //! ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PIOSC | ADC_CLOCK_RATE_Half、1);
    //!
    //! (笑声)
    //!
    //! //
    //! //将 ADC 配置为使用480MHz 的 PLL 除以24以获得 ADC
    //! // 20MHz 时钟。
    //! //
    //! ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_FULL、24);
    //! \end逐 字记录
    //!
    //! \无返回。
    ////
    *****************
    void
    ADCClockConfigSet (uint32_t ui32Base、uint32_t ui32Config、
    uint32_t ui32ClockDiv)
    {
    //
    //检查参数。
    //
    assert (((ui32Base == ADC0_BASE)||(ui32Base == ADC1_base));
    assert (((ui32ClockDiv - 1)<=(ADC_CC_CLKDIV_M >> ADC_CC_CLKDIV_S));
    
    //
    //必须提供速率。
    //
    assert (((ui32Config & ADC_CLOCK_RATE_FULL)!= 0);
    
    //
    //写入采样转换速率。
    //
    HWREG (ui32Base + ADC_O_PC)=(ui32Config >> 4)和 ADC_PC_SR_M;
    
    //
    //写入时钟选择和分频器。
    //
    HWREG (ui32Base + ADC_O_CC)=(ui32Config 和 ADC_CC_CS_M)|
    ((((ui32ClockDiv - 1)<<ADC_CC_CLKDIV_S));
    }