embeded/Cortex-M3 Ti2012. 6. 28. 22:00
기본제공 되는 예제에서 unsigned 만 삭제하면 문제없이 영하에 대해서도 작동한다.

long GetTemperature(char isCelcius)
{
	long ulADC0_Value[1];
	long ulTemp_ValueC;
	long ulTemp_ValueF;
	
	ADCProcessorTrigger(ADC0_BASE, 3);
	while(!ADCIntStatus(ADC0_BASE, 3, false))
	{
	}

	ADCSequenceDataGet(ADC0_BASE, 3, ulADC0_Value);
	ulTemp_ValueC = ((1475 * 1023) - (2250 * ulADC0_Value[0])) / 10230;
	ulTemp_ValueF = ((ulTemp_ValueC * 9) + 160) / 5;

	if(isCelcius) return ulTemp_ValueC;
	return ulTemp_ValueF;
}
Posted by 구차니