реклама на сайте
подробности

 
 
> ADC Mega168. Измерение напряжения "наоборот".
Буратино
сообщение Jun 29 2009, 10:53
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Есть устройство с автономным питанием. Для того ,Чтоб не использовать ключей, делителей и прочей обвязки - измеряю напряжение на аккумуляторе по сл. алгоритму:

AREF = AVCC = Vbat
Данные АЦП: N = 1024*Vop/Vbat
т.е. Vbat = Vop*1024/N

вот инициализация ADC:
void adc_init(void)
{
ADMUX = (1<<REFS0)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1);
ADCSRB = 0x00;
ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS0);
}


Вот прерывание:
#pragma vector= ADC_vect
__interrupt void ADC_vect_isr (void)
{
//conversion complete, read value (int) using...
value_ADC=ADCL; //Read 8 low bits first (important)
value_ADC|=(int)ADCH << 8; //read 2 high bits and shift into top byte
}



В тексте программы:
...
__disable_interrupt();adc_init();ADCSRA |= (1<<ADEN); __enable_interrupt();
DelayMs(5);
f_bat=(1.22*1024/value_ADC);
V_BAT=(f_bat*100);
__disable_interrupt();ADCSRA &= ~(1<<ADEN); __enable_interrupt();
...



не могу понять, почему иногда считает ADC неверно!? Где ошибка?
Я не использую никакой обвязки. То есть, на ногах проца имеющих отношение к преобразованию ничего не "висит". Может быть в этом проблема?
AVСС тоже в воздухе. Если измерять напряжение на этом выводе, то там меньше, чем на питании проца.
Сори за очередные глупые вопросы, но оч. нужна помощь. Спасибо.

Сообщение отредактировал Буратино - Jun 29 2009, 11:06


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Буратино   ADC Mega168. Измерение напряжения "наоборот".   Jun 29 2009, 10:53
- - rezident   Цитата(Буратино @ Jun 29 2009, 16:53) Я н...   Jun 29 2009, 12:14
|- - Буратино   Цитата(rezident @ Jun 29 2009, 16:14) Все...   Jun 29 2009, 13:49
|- - Палыч   Цитата(Буратино @ Jun 29 2009, 16:49) При...   Jun 29 2009, 15:12
|- - singlskv   Цитата(Палыч @ Jun 29 2009, 19:12) То, чт...   Jun 30 2009, 00:41
|- - Палыч   Цитата(singlskv @ Jun 30 2009, 03:41) ...   Jun 30 2009, 05:36
||- - singlskv   Цитата(Палыч @ Jun 30 2009, 09:36) Точнее...   Jun 30 2009, 19:03
|- - defunct   Цитата(singlskv @ Jun 30 2009, 03:41) Пер...   Jun 30 2009, 14:18
- - rezident   А в чем заключается ошибка "ацепирования...   Jun 29 2009, 15:02
|- - Буратино   Цитата(rezident @ Jun 29 2009, 19:02) А в...   Jun 29 2009, 17:21
|- - rezident   Цитата(Буратино @ Jun 29 2009, 22:58) Нет...   Jun 29 2009, 17:23
|- - Палыч   Цитата(Буратино @ Jun 29 2009, 20:21) Нет...   Jun 30 2009, 06:44
- - Буратино   Чувство такое, будто внутри процессора проходит пе...   Jun 29 2009, 18:04
- - DpInRock   В даташите АЦП посвещено нескольк страниц. И те не...   Jun 30 2009, 00:56
|- - singlskv   Цитата(DpInRock @ Jun 30 2009, 04:56) Стр...   Jun 30 2009, 01:09
- - DpInRock   КодAREF = AVCC = Vbat Тут уже говорилось автору, ч...   Jun 30 2009, 07:31
|- - Палыч   Цитата(DpInRock @ Jun 30 2009, 10:31) Тут...   Jun 30 2009, 07:54
- - Буратино   поставил 10н на AREF, попробовал отключить вообще ...   Jun 30 2009, 08:48
|- - Палыч   Цитата(Буратино @ Jun 30 2009, 11:48) Пер...   Jun 30 2009, 09:18
|- - Буратино   Цитата(Палыч @ Jun 30 2009, 13:18) Вы изм...   Jun 30 2009, 09:50
- - DpInRock   Относительно чего ПЕРВЫЙ РАЗ? Например, после сбро...   Jun 30 2009, 09:59
|- - Буратино   Цитата(DpInRock @ Jun 30 2009, 13:59) Отн...   Jun 30 2009, 10:26
|- - dimka76   Цитата(Буратино @ Jun 30 2009, 14:26) пер...   Jun 30 2009, 10:39
- - rezident   А может кто-то наконец внятно объяснить что и отно...   Jun 30 2009, 10:10
|- - Палыч   Цитата(rezident @ Jun 30 2009, 13:10) А м...   Jun 30 2009, 10:25
||- - rezident   Цитата(Палыч @ Jun 30 2009, 16:25) Измеря...   Jun 30 2009, 10:35
||- - Палыч   Цитата(rezident @ Jun 30 2009, 13:35) Суд...   Jun 30 2009, 10:51
||- - Буратино   Цитата(Палыч @ Jun 30 2009, 14:51) Кстати...   Jun 30 2009, 13:29
||- - Палыч   Цитата(Буратино @ Jun 30 2009, 16:29) все...   Jun 30 2009, 14:52
|- - dimka76   Цитата(rezident @ Jun 30 2009, 14:10) А м...   Jun 30 2009, 10:34
- - DpInRock   Замечание по ходу. Использование ADC_isr в данном ...   Jun 30 2009, 17:00
- - Буратино   Код#pragma vector= ADC_vect __interrupt void ADC_v...   Jun 30 2009, 18:49
|- - Палыч   Цитата(Буратино @ Jun 30 2009, 21:49) Код...   Jul 1 2009, 05:45
- - DpInRock   А у кого вы научились так АЦП опрашивать? Вот отче...   Jun 30 2009, 19:32
|- - Буратино   Цитата(DpInRock @ Jun 30 2009, 23:32) А у...   Jun 30 2009, 20:04
- - DpInRock   Я лично точно также измеряю абсолютное напряжение ...   Jun 30 2009, 20:29
- - dimka76   Вот еще одна шибка. MUXn и REFS1:0 биты имеют буфе...   Jul 1 2009, 08:10
|- - Палыч   Цитата(dimka76 @ Jul 1 2009, 11:10) MUXn ...   Jul 1 2009, 08:30
|- - dimka76   Цитата(Палыч @ Jul 1 2009, 12:30) Все эти...   Jul 1 2009, 08:41
|- - Палыч   Цитата(dimka76 @ Jul 1 2009, 11:41) А пос...   Jul 1 2009, 08:53
- - DpInRock   Не путайте товарища. Какие еще 70 микросекунд... Ц...   Jul 1 2009, 10:13
|- - Палыч   Цитата(DpInRock @ Jul 1 2009, 13:13) Не п...   Jul 1 2009, 10:30
- - DpInRock   А вот и нет. Цитатаthe reference voltage can be ma...   Jul 1 2009, 11:24
- - Буратино   Всем спасибо. Работает ниже приведу код: Код... ...   Jul 1 2009, 11:29
- - Палыч   Цитата(Буратино @ Jul 1 2009, 14:29) Код....   Jul 1 2009, 12:03
- - Буратино   вот: Код... static volatile unsigned int value_AD...   Jul 1 2009, 12:46
- - Палыч   Цитата(Буратино @ Jul 1 2009, 15:46) вот:...   Jul 1 2009, 15:56
- - Буратино   Цитата(Палыч @ Jul 1 2009, 19:56) А, резу...   Jul 1 2009, 16:27
- - Палыч   Цитата(Буратино @ Jul 1 2009, 19:27) Код ...   Jul 2 2009, 05:14
- - Буратино   Цитата(Палыч @ Jul 2 2009, 09:14) Плавающ...   Jul 2 2009, 06:53


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 09:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016