среда, 17 октября 2012 г.

Функция получения температуры со встроенного датчика в Цельсиях

Функция получения температуры



unsigned int TempSensor(void)
{
ADC10AE0 = 0x00;
//ADC10CTL0 &= ~ADC10IFG;
ADC10CTL1 = 0x0000;
ADC10CTL0 = 0x0000;
ADC10CTL1 = INCH_10 + ADC10DIV_4; // Temp Sensor ADC10CLK/4
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + REF2_5V + ADC10ON + ADC10SR;
//ADC10IE
delayMs(1);
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
// oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278
while (!(ADC10CTL0 & ADC10IFG)); // Conversion done?
//temp=ADC10MEM;
unsigned long IntDegC = ((ADC10MEM - 673) * 423) / 1024;
//ADC10CTL0 &= ~ADC10IFG;
return (IntDegC);
}

взято тут и позже попробую чуть переделать, ещё по хорошему надо бы выключить конвертирование

ADC10CTL0 &= ~ENC;
ADC10CTL0 &= ~ADC10IFG;

Комментариев нет:

Отправить комментарий