请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP432P401R 工具/软件:TI-RTOS
是否有使用TI-RTOS读取MSP432上内部温度传感器的示例?
我看到了NO-RTOS 'adc14_single,channel_temperature_sensor'的例子,但不知道如何转换所有这些单独的设置命令,所以我只需要用'adc_converbate()'进行一个简单的调用。
谢谢。
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.
工具/软件:TI-RTOS
是否有使用TI-RTOS读取MSP432上内部温度传感器的示例?
我看到了NO-RTOS 'adc14_single,channel_temperature_sensor'的例子,但不知道如何转换所有这些单独的设置命令,所以我只需要用'adc_converbate()'进行一个简单的调用。
谢谢。
您好,
目前我们没有TI RTOS示例。
因此,您必须执行如下操作:
/*********************************************************** 函数:adcInit */ static void adcInit (void) { Hwip_Params adcHwiParams; Hwip_Params_init(&adcHwiParams); adcHwiParams.arg =0; adcHwiParams.priority =~0; adcHwiParams.name ="ADC14"; adcHwiHandle = HwiP_CREATE (40,&Hwi_ADC,&adcHwiParams); /*在温度传感器已布设的情况下初始化ADC (MCLK/1/1)*/ ADC14_enableModule(); ADC14_INITModule (ADC_CLOCKSOURCE_MCLK,ADC_PREDIVIDER_1,ADC_DIVIDER_1, ADC_TEMPSENSEMAP); /*为GPIO 4.2 (A11)配置模拟输入*/ GPIO _setAsPeripheralModuleFunctionInputPin (GPIO_PORT_P4, GPIO_PIN2,GPIO第三模块功能); /*配置ADC内存(ADC_MEM0 A22 (温度传感器)和 * ADC_MEM1 A11在重复模式下)。 */ ADC14_configureMultiSequenceMode (ADC_MEM0,ADC_MEM1,FALSE); ADC14_configureConversionMemory (ADC_MEM0,ADC_VREFPOS_INTBUF_VREFNEG_VSS, ADC_INPUT_A22,FALSE); ADC14_configureConversionMemory (ADC_MEM1,ADC_VREFPOS_INTBUF_VREFNEG_VSS, ADC_INPUT_A11,FALSE); /*为TBD */配置采样/保持时间 ADC14_setSampleHoldTime (ADC_PULSE_WIDES_192,ADC_PULSE_WIDES_192); /*在自动迭代模式下启用采样计时器并中断*/ ADC14_enableSampleTimer(ADC_AUTOMATICATE_IREDATE); /*在通道1上进行转换时启用中断(序列结束) *已完成并启用转换*/ ADC14_enableInterrupt (ADC_INT1); /*将参考电压设置为2.5 并启用温度传感器*/ ref_a_enableTempSensor(); ref_a_setReferenceVoltage (REF_A_VREF2_5V); ref_a_enableReferenceVoltage(); /*获取校准值*/ cal30 = map_sysctl_getTempCalibrationConstant (sysctl_2_5V_REF, sysctl_30_degrees_C); cal85 = map_sysctl_getTempCalibrationConstant (sysctl_2_5V_REF, sysctl_85_degrees_C); CalDifference = cal85 - cal30; Hwip_enableInterrupt (40); ADC14_enableConversion(); }
和HWI (我正在使用信号来发出任务信号):
/***********************************************************
函数:HWI_ADC
*/
void HWI_ADC (UArg arg)
{
UINT64_t状态;
状态= MAP_ADC14_getEnabledInterruptStatus();
MAP_ADC14_clearInterruptFlag (状态);
IF (状态和ADC_INT1)
{
温度读数=(ADC14_getResult (ADC_MEM0)- cal30)* 55);
SemaphoreP_post(tempsem);
}
}
希望这能有所帮助。
David