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.

[参考译文] MSP432P401M:关于ADC14

Guru**** 2536610 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/579324/msp432p401m-regarding-adc14

部件号:MSP432P401M

大家好,

  我要访问ADC14MEM0寄存器并将值存储在变量中。  我尝试了这个“ curADCResult = ADC14MEM0”。 但是,它显示ADC14MEM0未定义。

 如何访问 ADC14MEM0转换值?

 

 

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

    你好,Sayali!

    ADC14MEM0肯定是有效的注册名称。 如果未知,则可能没有包含正确的头文件,或者您的项目最初是针对不同的处理器启动的,包括错误的头文件本身。 但我预计在这种情况下会出现更多/其他错误。 您是否使用CCS? 如果时间不长,您是否会上传您的代码或项目?

    Dennis

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

    您好,Dennis,
    我正在使用CCS版本:7.0 .0.0.0042万。 我已经使用了来自simplelink_msp432_sdk_1_20_00_45的代码" adc14_single conformation_repee"示例。 我忘记了添加驱动程序库。当我添加驱动程序库时,我可以轻松访问ADC14MEM0值。
    之后我尝试了这个代码:-
    void ADC14_IRQHandler (void)



    curADCResult = MAP_ADC14_getResult(ADC_MEM0);
    normalizedADCRes =((float) curADCResult * 3.3)/ 1.6383万;
    }

    和定义的变量:

    静态易失性uint16_t curADCResult;
    静态易失性浮点法正态ADCRes;



    当我调试代码ADC14MEM0寄存器值持续更改。但curADCresult和规范化ADCRes中没有chnages。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何定义curADCresult? 如果它是全球性的,它就需要是不稳定的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Keith:

    我已经浏览了一些从msp432软件中提取的示例代码。在每个代码中,ADC14MEM0的值都在一个变量中简单地声明。我在代码中做了同样的事情。

    我刚刚在ADC中断中尝试了此操作,ADCvar =ADC14->MEM[0];
    并将变量声明为volatile uint16_t ADCvar。

    ADCvar变量仍无法获得结果。 要将结果存储在变量中,项目中是否需要包含任何头文件?如果是,则需要哪个头文件?CCS设置中是否有任何更改?

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

    您好Sayali:

    您连接到WFP 5.5 的输入内容是什么... 我已经检查了与WFP 5.5 连接3V,GND等信号的Launchpad上的代码,它工作正常。

    如果您在Free (自由)模式下运行它,而未连接到WFP 5.5 上的任何设备,它会将结果显示为0。

    内部主(无效)

    /*停止监视程序*/

    MAP_WDT_A_HoldTimer();

    /*初始化变量*/

    curADCResult = 0;

    /*设置闪存等待状态*/

    MAP_FlashCTL_setWaitState(FLASH_BANK0, 2);

    MAP_FlashCTL_setWaitState(FLASH_Bank1,2);

    /*将DCO设置为48MHz */

    MAP_PCM_setPowerState(PCM_AM_LDO_VCORE1);

    MAP_CS_setDCOCenteredFrequency (CS_DCO_Frequency_48);

    /*启用FPU以进行浮点操作*/

    MAP_FPU_enableModule();

    MAP_FPU_enableLazyStacking();

    /*初始化ADC (MCLK/1/4)*/

    MAP_ADC14_enableModule();

    MAP_ADC14_INITModule (ADC_CLOCKSOURCE_MCLK,ADC_PREDIVIDER_1,ADC_DIVIDER_4,

    0);

    /*配置GPIO (5.5 A0)*/

    MAP_GPIO设置外围模块功能输入引脚(GPIO_PORT_P5, GPIO

    GPIO第三模块功能);

    /*配置ADC内存*/

    MAP_ADC14_configureSingleSampleMode (ADC_MEM0,TRUE);

    MAP_ADC14_configureConversionMemory (ADC_MEM0,ADC_VREFPOS_AVCC_VREFNEG_VSS,

    ADC_INPUT_A0,FALSE);

    /*配置采样计时器*/

    MAP_ADC14_enableSampleTimer(ADC_MANUAL_ITED);

    /*启用/切换转换*/

    MAP_ADC14_enableConversion();

    MAP_ADC14_ToggleConversionTrigger();

    /*启用中断*/

    MAP_ADC14_enableInterrupt (ADC_INT0);

    MAP_Interrupt_enableInterrupt (INT_ADC14);

    MAP_Interrupt_enableMaster();

    同时(1)

    MAP_PCM_GotoLPM0();

    }

    }

    /* ADC中断处理程序。 只要有转换,就会调用该处理程序

    * ADC_MEM0已完成。

    */

    void ADC14_IRQHandler (void)

    UINT64_t status = MAP_ADC14_getEnabledInterruptStatus();

    MAP_ADC14_clearInterruptFlag (状态);

    IF (ADC_INT0和状态)

    curADCResult = MAP_ADC14_getResult(ADC_MEM0);

    ADC_RES[ADC_cnt]= curADCResult;

    ADC_cnt++;

    IF (ADC_cnt>15)

    ADC_cnT=0;

    normalizedADCRes =(curADCResult * 3.3)/ 1.6384万;

    MAP_ADC14_ToggleConversionTrigger();

    }

    }

    此致,

    Vikas Chola

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

    您好,Vikas:

     传感器的输出连接到ADC的WFP 8.4 ,即A19引脚。ADC输入范围为0至3.3V。 我运行您的代码,但curADCresult值仍不会更改。如果在主代码中读取转换结果,则意味着我在主代码中添加此代码而不中断:-


    同时(1)

    ADCvar = ADC14->MEM[0];//读取转换结果
    __no_operation();//在此处设置断点
    }

    ADCvar变量中的结果会不断变化。

     

    我将在此处附加main.c文件:-

    e2e.ti.com/.../3324.main.ce2e.ti.com/.../dev_5F00_init.c