大家好,
我要访问ADC14MEM0寄存器并将值存储在变量中。 我尝试了这个“ curADCResult = ADC14MEM0”。 但是,它显示ADC14MEM0未定义。
如何访问 ADC14MEM0转换值?
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.
大家好,
我要访问ADC14MEM0寄存器并将值存储在变量中。 我尝试了这个“ curADCResult = ADC14MEM0”。 但是,它显示ADC14MEM0未定义。
如何访问 ADC14MEM0转换值?
您好,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。
您好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文件:-