Вт дек 29, 2020 13:51:29
Вт дек 29, 2020 15:09:12
Вт дек 29, 2020 18:27:43
Вт дек 29, 2020 22:32:06
Ср дек 30, 2020 09:41:47
Сб янв 02, 2021 08:50:13
Вс янв 17, 2021 21:47:14
Вс янв 17, 2021 22:16:56
Пн янв 18, 2021 17:20:26
так это исшо не фсё... энкодеры в качестве задатчиков опорного напряжения и ещё кое что по мелочи... только вот терзают сумненья по поводу младшего разряда... не будет ли мельтишить... мож усреднять надо? или это шизофрения уже?вон много ножек зря пропало
Ср янв 20, 2021 03:44:40
Ср янв 27, 2021 21:29:05
Чт апр 08, 2021 21:22:06
Вт май 04, 2021 12:49:53
Чт май 06, 2021 21:59:34
#define kolvo_dlya_sglaj 17 // по скольким результатам измерений вычислить среднее значение
unsigned long ADC_Convert (unsigned char Kanal_ADC)
{
uint32_t sum = 0;
//ADMUX = ADMUX&224|Kanal_ADC; //выберем канал АЦП (обнулим биты MUX4-MUX0 в регистре ADMUX, не изменяя при этом биты 5,6,7, после этого заменим значение битов MUX4-MUX0 на номер(код) канала)
ADMUX = ADMUX & 224; //выберем канал АЦП (сначала обнулим биты MUX4-MUX0 в регистре ADMUX, не изменяя при этом биты 5,6,7)
ADMUX = ADMUX | Kanal_ADC; //выберем канал АЦП (затем заменим значение битов MUX4-MUX0 на номер(код) канала)
for(uint8_t i = 0; i < kolvo_dlya_sglaj; ++i) {
ADCSRA |= (1<<ADSC); //Начинаем аналого-цифровое преобразование (для этого запишем 1 в бит ADSC регистра ADCSRA)
while((ADCSRA & (1<<ADSC))); //Ждём когда закончиться аналого-цифровое преобразование (преобразование закончится, когда бит ADSC регистра ADCSRA станет равным 0)
sum += ADCW;
}
sum += kolvo_dlya_sglaj >> 1;
sum /= kolvo_dlya_sglaj;
return (unsigned long) sum; //Выйдем из функции и вернём (запишем) полученное значение (из регистров результата ADCL и ADCH) в переменную типа unsigned int
}
Пт май 07, 2021 07:19:06
Карбофос писал(а): sum += kolvo_dlya_sglaj >> 1;
Пт май 07, 2021 07:38:00
Пт май 07, 2021 08:50:54
это правильное округлениеStarichok51 писал(а):а это что
Пт май 07, 2021 14:49:29
Сб май 08, 2021 05:23:36
Out_To_Display += (ADC - Out_To_Display) / 2;
Сб май 08, 2021 07:25:24