|
ADC Mega168. Измерение напряжения "наоборот". |
|
|
|
Jun 29 2009, 10:53
|

Профессионал
    
Группа: Свой
Сообщений: 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
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
Сообщений в этой теме
Буратино 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|