Atmega328p напряжение 18650

Значит, Вы неправильно что-то сделали. Код абсолютно рабочий, но как Вы его запускали, что в нём меняли и какова была схема (если у Вас не ардуина, а голый контроллер, то, например, как Вы запитали аналоговую часть МК) - кто ж Вас знает-то?

Знаете, здесь на форуме есть золотое правило, если спрашиваете совета об ошибке, обязательно выкладывайте код и схему. Без этого одни Вас будут материть, другие - глумиться над Вам. Лично я - немного поделаю то и другое и просто свалю с темы.

Очень странный код. Точнее не весь код - он стандартный, а формула вычисления результата.
Нафига там эти пляски с округлением и референс с точностью до десятых милливольта, если в результате получаем напряжение плюс-минус валенок
Я в своих батарейных проектах всегда до сотых измерял.

Вообще, каждый раз когда я в коде вижу прибавление половины делителя перед делением, я понимаю что автор зануда :grin:

все в порядке все работает как надо и десятые показывает это я кое что не правильно сделал , код рабочий 100% .

всем огромное спасибо за помощь !!!

Это просто адаптация кода из моей “домашней библиотеки”, там возвращаются милливольты. Но тот код нельзя здесь выкладывать, поскольку это “домашняя” библиотека, она тянет за собой ещё полтора десятка библиотек. А адаптация делалась по принципу “наименьшего воздействия”.

Кстати, в библиотеке она выглядит вот так:

uint16_t adcBatteryVoltage(const bool bNoiseReduction) {
	const ADCREFFERENCE saveRef = adcGetRefference();
	if (saveRef != ADC_AVCC) adcRefference(ADC_AVCC);
	const ADCPIN saveChannel = adcGetChannel();
	const uint16_t adc = adcPinValue(ADCVBG, bNoiseReduction);
	adcChooseChannel(saveChannel);
	if (saveRef != ADC_AVCC) adcRefference(saveRef);
	#if mcuATmega32Detected
		ADCInternalsNS::adcSavedBatteryVoltage = (ADCInternalsNS::adcInternalRefference122 * 1024L + adc / 2) / adc;
	#else
		ADCInternalsNS::adcSavedBatteryVoltage = (ADCInternalsNS::adcInternalRefference110 * 1024L + adc / 2) / adc;
	#endif
	return ADCInternalsNS::adcSavedBatteryVoltage;
}

Ну, и слава Богу. А на будущее запомните: