kpv (22.11.2004 19:10, просмотров: 1) ответил kpv на не считайте меня занудой, но поставьте, как в даташите указано, storage capacitance is a parallel combination of 10-µF and 0.1-µF capacitors
у меня только усреднённые результаты http://kpv.nnov.ru/temp/
исходник, где использовали отдельные (единичные) сэмлы температуры не запущу, сейчас, реально работающий, использует усреднение по 16 отсчетам. Но когда отлаживали - отдельные отсчеты плавали только в младшем разряде.
на temp.gif (10 сек вся ширина, 10 Гц выборка) - обычная картина
на temp1.gif стрелочкой указано "дыхание разработчика", реагирует сразу. Если пальцем коснуться - улетает сразу. Кому такая картинка нужна - пишите ;-)
sleep режимов сейчас нет, постоянно по ком-порту шлём, и шим (моторчиком управляем).
по входам АЦП он мощно "щелкает" (или hold внутренний, или мультиплексор), поэтому по точности измерений также внимательно надо читать даташит ;-)
void set_adc_temperature(void){
ADC12CTL0 &= ~ENC; // Enable conversions
ADC12CTL0 = ADC12ON+REFON+MSC+SHT0_15+SHT1_15; // Turn on ADC12, set sampling time
ADC12MCTL0 = INCH_10+SREF_1;
ADC12MCTL1 = INCH_10+SREF_1;
ADC12MCTL2 = INCH_10+SREF_1;
ADC12MCTL3 = INCH_10+SREF_1;
ADC12MCTL4 = INCH_10+SREF_1;
ADC12MCTL5 = INCH_10+SREF_1;
ADC12MCTL6 = INCH_10+SREF_1;
ADC12MCTL7 = INCH_10+SREF_1;
ADC12MCTL8 = INCH_10+SREF_1;
ADC12MCTL9 = INCH_10+SREF_1;
ADC12MCTL10= INCH_10+SREF_1;
ADC12MCTL11= INCH_10+SREF_1;
ADC12MCTL12= INCH_10+SREF_1;
ADC12MCTL13= INCH_10+SREF_1;
ADC12MCTL14= INCH_10+SREF_1;
ADC12MCTL15= INCH_10+SREF_1+EOS;
ADC12IE = 1<<15; // Enable ADC12IFG.3
ADC12CTL0 |= ENC; // Enable conversions
}