luminary micro 温度计的实现
基于LM3S811 EKK,其温度计本来是检测芯片本身的温度,但在一些室温下使用的产品还是勉强可以用作温度计测量环境的温度 。
附件是例子程序 ,请将 这个压缩包解压缩到 D:\DriverLib\boards\ek-lm3s811 目录下 。就可以在EKK-LM3S811板子上实现 。
压缩包的例子程序是使用timer 触发去检测温度 ,下面的CODE 是用处理器触发来检测温度 。
void
InitADC0(void)
{
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC);
SysCtlADCSpeedSet(SYSCTL_ADCSPEED_500KSPS);
ADCSequenceDisable(ADC_BASE, 3);
//
// Configure sample sequence 3: processor trigger, priority = 0
//S
ADCSequenceConfigure(ADC_BASE, 3, ADC_TRIGGER_PROCESSOR, 0);
//
// Configure sample sequence 3 step 0
//
ADCSequenceStepConfigure(ADC_BASE, 3, 0, ADC_CTL_TS | ADC_CTL_END);
//ADCProcessorTrigger(ADC_BASE, 3);
ADCSequenceEnable(ADC_BASE,3);
}
void
ADCIntHandler(void)
{
unsigned long ulData;
char scADCValDis[15];
ADCProcessorTrigger(ADC_BASE, 3);
//
// Clear the ADC interrupt.
//
ADCIntClear(ADC_BASE, 3);
//
// Read the data from the ADC.
//
ADCSequenceDataGet(ADC_BASE, 3, &ulData);
g_ucAmbientTemp = (55960 - (ulData * 100)) / 376;
//usprintf(scADCValDis, "%03d C", g_ucAmbientTemp);
Print_Hex(g_ucAmbientTemp);
}
发表时间:2008年4月15日16:31:14