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.

[参考译文] RTOS/MSP432E401Y:函数 ADCSequenceStepConfigure()不能用于通道号>= 16

Guru**** 2576215 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/804950/rtos-msp432e401y-function-adcsequencestepconfigure-doesn-t-work-for-channel-numbers-16

器件型号:MSP432E401Y

工具/软件:TI-RTOS

大家好、

在名为 ADCSequenceStepConfigure()的函数中找到,该函数位于复制的 C:\ti\simplelink_msp432e4_sdk_2_20_00_20\source\ti\devices\msp432e4\driverlib\adc.c 中

到达要放入 ADC_SSEMUX 的值的屏蔽不起作用。

下面是它在 SDK 的 ADC.c 中的显示方式


HWREG (ui32Base + ADC_SSEMUX)=((HWREG (ui32Base + ADC_SSEMUX)和 ~(0x0000000f << ui32step))| ((((ui32Config & 0xf00)>> 8)<< ui32Step));

我对屏蔽进行了这种更改、这确实会导致适当的值进入扩展多路复用器寄存器。

uint16 ssemux =(HWREG (ui32Base + ADC_SSEMUX)&~(0x0000000f << ui32Step)); uint16 val =(((ui32Config & 0x10)>>4)<< ui32Step); Val = ssemux | val; HWREG (ui32Base + ADC_SSEMUX)= val;

SDK 中的 ADC 示例不使用任何通道编号>= 16。

这可能对其他人有用。

供参考、

Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ADCSoftwareOversampleStepConfigure()中也存在问题
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这听起来类似于:

    e2e.ti.com/.../2948819

    如果是、我认为该项目具有建议的解决方法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bruce、您好!

    我被错误地认为我建议的修复的价值、而不是 PortK 组 ADC 源的问题。

    您建议的链接中的变通办法适用于我。

    谢谢、

    Tom